我正在使用Laravel 5.8内置的身份验证脚手架。我只是尝试使用密码重置功能。我转到路线password/reset
,并获得了在其中插入我的电子邮件地址的表单,提交并正确接收了电子邮件,但是重设页面的URL包含请求重设的用户的用户名而不是令牌。
因此,当我单击重置链接并尝试提交表单以重置密码时,我收到验证错误消息,提示令牌已破损,实际上将令牌隐藏字段的值设置为用户名而不是令牌,因为它是作为参数从错误的URL到达的。 password_resets
表内有应该通过电子邮件发送的正确令牌。
在web.php
文件中,Auth::routes();
位于顶部,因此与我的路线不应有任何冲突。
为什么Laravel发送错误的URL?我应该检查什么?
编辑:在LoginController
内部,唯一改变的是覆盖的credentials()
函数:
protected function credentials(Request $request)
{
// This adds the check over the verify_token field upon login
// the field must be null to pass the check
return [
'email' => $request['email'],
'password' => $request['password'],
'verification_token' => null
];
}
答案 0 :(得分:0)
我不好(当然)。我离开这个项目几个月了,但我忘记了也重写了电子邮件的模板,我搞砸了。无论如何,谢谢您的时间,对不起。