Laravel 8 Jetstream如何在重置密码后将用户重定向到自定义路由

Mok*_*leb 2 laravel-8 laravel-jetstream

我正在使用 Laravel 8 jetstream 进行身份验证。我的问题是,将密码重置为自定义路由后如何重定向用户?我不想将用户重定向到登录页面。我没有在所有Fortify课程中找到该路线;我确信它应该覆盖。

受保护的$redirectTo

但我不知道我必须在哪个文件中进行此更改。

Bil*_*llD 6

Here\xe2\x80\x99s 在用户提交密码重置操作后,我最终做了什么重定向回登录路由:

\n
    \n
  • 将文件SuccessfulPasswordResetLinkRequestResponse.php从复制\\vendor\\laravel\\fortify\\Http\\Responses\\到项目上的文件夹(位于 )app\\Http\\Responses

    \n
  • \n
  • 在新文件中SuccessfulPasswordResetLinkRequestResponse.php,将命名空间更改为:

    \n
  • \n
\n
namespace App\\Http\\Responses;\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 打开app\\Providers\\FortifyServiceProvider.php

    \n
  • \n
  • 在函数内部boot()添加:

    \n
  • \n
\n
public function boot() \n{\n    ...\n\n    $this->app->singleton(SuccessfulPasswordResetLinkRequestResponseContract::class, SuccessfulPasswordResetLinkRequestResponse::class);\n}\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 在同一个FortifyServiceProvider.php文件中,添加命名空间:
  • \n
\n
use App\\Http\\Responses\\SuccessfulPasswordResetLinkRequestResponse;\nuse Laravel\\Fortify\\Contracts\\SuccessfulPasswordResetLinkRequestResponse as SuccessfulPasswordResetLinkRequestResponseContract;\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 在新SuccessfulPasswordResetLinkRequestResponse.php文件中,编辑toResponse()函数:
  • \n
\n
    public function toResponse($request)\n    {\n        return $request->wantsJson()\n            ? new JsonResponse([\'message\' => trans($this->status)], 200)\n            : redirect()->route(\'login\')->with(\'status\', trans($this->status));\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

这里有一个有用的链接,显示了在撰写本文时 Fortify 使用的所有响应类:\n覆盖其他 Jetstream 和 Fortify 功能

\n