首页 文章

Laravel忘记密码(重置密码)

提问于
浏览
-1

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

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

2 回答

  • 0

    来自the docs

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

    $request->session()->flash('status', 'Task was successful!');
    
  • 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

相关问题