php – 解密Laravel密码重置令牌

php – 解密Laravel密码重置令牌,第1张

概述我正在编写一个测试,确保我的应用程序的密码重置功能正常工作.密码重置系统是使用php artisan make:auth命令创建的.为了使测试通过,我需要将GET请求自动化为/ password / reset / {$token},其中$token是存储在password_resets表中的值. Laravel像这样存储令牌: $2Y $10 $9grKb3c6.Toiv0kjUWbCUeT8Q 我正在编写一个测试,确保我的应用程序的密码重置功能正常工作.密码重置系统是使用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);
总结

以上是内存溢出为你收集整理的php – 解密Laravel密码重置令牌全部内容,希望文章能够帮你解决php – 解密Laravel密码重置令牌所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1258720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存