Laravel忘记密码(重置密码)

时间:2018-02-22 07:09:40

标签: laravel laravel-5

我有一个Laravel应用程序,需要密码重置功能。在将电子邮件发送给用户或单击提交按钮后,如何刷新会话消息?

我似乎无法向返回重置密码页面视图的函数添加flash方法,因为该文件位于vendor文件夹中。

2 个答案:

答案 0 :(得分:0)

来自the docs

  

有时您可能希望仅在下一个请求中将项目存储在会话中。您可以使用flash方法执行此操作。使用此方法存储在会话中的数据仅在后续HTTP请求期间可用,然后将被删除。 Flash数据主要用于短期状态消息:

$request->session()->flash('status', 'Task was successful!');

答案 1 :(得分:0)

在提交密码重置表单后跟踪了将触发的功能一小时后,我发现:

  • 提交密码重置表单后,将触发sendResetLinkEmail函数,可在SendsPasswordResetEmails.php中找到。
  • 然后在第37行

    return $response == Password::RESET_LINK_SENT ? $this->sendResetLinkResponse($response) : $this->sendResetLinkFailedResponse($request, $response);

  • sendResetLinkResponse函数负责在电子邮件发送成功后会发生什么。

protected function sendResetLinkResponse($response) { return back()->with('status', trans($response)); }

默认情况下,laravel auth:make不会在前端或重置密码页面中显示“status”变量。

我必须将这些代码行添加到重置密码模板。

@if(session()->has('status')) <div class="alert-container"> <div class="alert alert-success"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> {{ Session::get('status') }} </div> </div> @endif