Laravel 5.1 - 内置密码重置功能,不发送带有令牌的电子邮件
Laravel 5.1 - Built in password reset functionality not sending email with token
概览:
我正在使用 Laravel 5.1 中的内置系统创建密码重置功能,我完全按照说明 here。
resources/views/emails/password.blade.php
中的视图收到一个变量 $token
,其中包含密码重置令牌,用于将用户与密码重置请求相匹配。在视图中,我有以下代码应该创建用户设置新密码的页面的 URL link:
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('Auth\PasswordController@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]);
谢谢,祝你好运!
概览:
我正在使用 Laravel 5.1 中的内置系统创建密码重置功能,我完全按照说明 here。
resources/views/emails/password.blade.php
中的视图收到一个变量 $token
,其中包含密码重置令牌,用于将用户与密码重置请求相匹配。在视图中,我有以下代码应该创建用户设置新密码的页面的 URL link:
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('Auth\PasswordController@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]);
谢谢,祝你好运!