php laravel 忘记密码,php – 解密Laravel密码重置令牌

我正在编写一个测试,确保我的应用程序的密码重置功能正常工作.密码重置系统是使用PHP artisan make:auth命令创建的.为了使测试通过,我需要将GET请求自动化为/ password / reset / {$token},其中$token是存储在password_resets表中的值. Laravel像这样存储令牌:

$2Y $10 $9grKb3c6.Toiv0kjUWbCUeT8Q8D.Fg2gZ / xDLGQUAkmdyHigmRkNW

但是当Laravel将密码重置电子邮件发送给用户时,重置令牌在电子邮件中如下所示:

382aa64567ecd05a774c2e4ebb199d3340a1424300707053354c749c10487594.

我的GET请求/password/reset/$2y$10$9grKb3c6.Toiv0kjUWbCUeT8Q8D.Fg2gZ/xDLGQUAkmdyHigmRkNW由于重置令牌中的正斜杠而失败. (紧跟’g2gZ’之后)

我尝试使用helper函数decrypt()但没有运气.

如何转换我从password_resets表中提取的密码重置令牌以匹配Laravel发送给用户的内容?

不确定这是否相关,但我确实将我的应用程序从5.3升级到5.4.

您可以从用于传递给Notification的assertSentTo方法的其他检查的闭包中获取令牌,因为$token是标准ResetPassword通知的公共属性.

在你的测试中:

Notification::fake();

$this->postJson('api/user/reset',['email' => $user->email])

->assertStatus(200);

$token = '';

Notification::assertSentTo(

$this->user,\Illuminate\Auth\Notifications\ResetPassword::class,function ($notification,$channels) use (&$token) {

$token = $notification->token;

return true;

});

$this->postJson('api/user/resetting',[

'email' => $user->email,'token' => $token,'password' => '87538753','password_confirmation' => '87538753'

])

->assertStatus(200);@H_502_22@

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值