我刚刚开始学习Laravel,我正在跟踪这些文档。我了解到,Laravel使用emails.auth.reminder视图作为电子邮件发送给使用重置token的用户。在我的emails.auth.reminder中,我放置了以下内容:
Hello Dear User,<br><br>
We have received a request from your account to reset your password at Larblog. Please use the following link to reset your password.<br><br>
{{ URL::to( 'user/resetpassword/' . Session::get('_token') ) }}<br><br>
If it wasn't you who tried to reset the password, simply ignore this email.<br><br>
Thanks,<br>
- Larblog注意,我正在使用Session::get('_token')访问令牌。我这么做是对的吗?因为它总是生成相同的令牌。Z7vKMT5ssfzeXsQcVkrYodoRmYnbjH0prdP83jBk一次又一次。当我用这个来重置密码的时候,上面写着:Invalid token received。此外,我已经签入了我的数据库的password_reminders表,它显示了不同的标记。当我使用存储在数据库中的令牌时,它可以工作。
那么,通过电子邮件发送的视图中访问令牌的正确方法是什么?
发布于 2014-07-03 07:02:18
我不确定直接访问密码提醒令牌的方法是什么,但是通常情况下,当发送电子邮件时,它是通过密码::反射性()函数完成的,而不是通常的电子邮件函数。使用它时,$token变量将自动传递到电子邮件视图中,以便您可以使用它。
使用此功能的一个例子是:
Password::remind(Input::only('email'), function ($message)
{
$message->subject('Password Reset');
});然后在视图中访问它非常简单,如下所示:
To reset your password, complete this form: {{ URL::to('reset', array($token)) }}发布于 2014-07-03 06:54:31
会话中的_token不是密码提醒令牌,而是出于安全原因自动插入的CSRF令牌。
由于我不知道您的表和模型是什么样子的,所以很难确切地说您应该如何获得实际的密码提醒令牌,但很可能是这样的:
$user = User::find($someid); // first fetch your user
$token = $user->passwordReminder->token; // now get the token如果您的表格和模型与我的假设不同,请随时更新您的问题,我很乐意更新我的答案。:)
https://stackoverflow.com/questions/24546323
复制相似问题