Laravel:使用用户名而不是令牌收到密码重置链接

时间:2019-07-02 20:58:07

标签: laravel authentication laravel-5 laravel-5.8

我正在使用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
    ];
}

1 个答案:

答案 0 :(得分:0)

我不好(当然)。我离开这个项目几个月了,但我忘记了也重写了电子邮件的模板,我搞砸了。无论如何,谢谢您的时间,对不起。