Laravel 5.1-内置密码重置功能,不使用令牌发送电子邮件



概述:

我正在使用Laravel 5.1中的内置系统创建密码重置功能,我已经按照这里的说明进行了操作。

resources/views/emails/password.blade.php中的视图接收变量$token,该变量包含将用户与密码重置请求相匹配的密码重置令牌。在视图中,我有以下代码,它应该创建用户设置新密码的页面的URL链接:

   Click here to reset your password: {{ url('password/reset/'.$token) }}

问题:

它根本不发送电子邮件。但我已经意识到,如果我去掉最后一个斜杠(见下文(:

   Click here to reset your password: {{ url('password/reset'.$token) }}

我收到类似http://mywebsite.com/password/reset35df435dfgdfg... 的东西

结论:

每当password/reset/$token之间有一个尾随斜线时,就不会发送电子邮件。即使我手动键入URL。

为什么$token之前的/会影响发送的电子邮件?有什么想法吗?

尝试的解决方案:

 url('password/reset', [$token]); //DID NOT WORK
 action('AuthPasswordController@getEmail', ['token' => $token]);  //DID NOT WORK
 route('password/email', ['token' => $token]); //DID NOT WORK
 url('password/reset/'.$token); //DID NOT WORK

像这样尝试

url助手函数第二个参数是要和url一起传递的参数数组。不是将参数附加到url的末尾。。,你可以像贝娄一样使用。

url('password/reset', [$token]);

我找到了一个解决方案!这并不常见,但如果添加后向斜杠,它将保留前向斜杠,并且令牌不会有问题。

url('password/reset/', [$token]);

谢谢&祝你好运

相关内容

最新更新