如何设置 laravel 5.3 注销重定向路径?

新手上路,请多包涵

在 Laravel 5.3 中注销后,是否没有优雅的解决方案可以重定向到特定页面?

被调用的函数来自特征 AuthenticatesUsers

 public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->flush();

    $request->session()->regenerate();

    return redirect('/');
}

这是来自 laravel 核心的默认功能。所以我必须覆盖我无法编辑核心的整个功能。但是没有更简单的解决方案吗,因为手动注销、刷新和重新生成感觉有点矫枉过正。

在一篇文章中找到了答案: https ://codeneverlied.com/how-to-set-logout-redirect-path-in-laravel-5-8-and-before/

原文由 Tim van Uum 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 470
2 个回答

我就是这样做的。在 Auth\LoginController 你有:

 use AuthenticatesUsers;

将其更改为:

 use AuthenticatesUsers {
    logout as performLogout;
}

然后,在 LoginController 中定义一个新的 logout() 方法:

 public function logout(Request $request)
{
    $this->performLogout($request);
    return redirect()->route('your_route');
}

当然,常规 logout() 该特征中的方法只有 3 行(用于将用户从系统中注销),因此您可以将它们复制到您的方法中,但您应该始终遵循 DRY 原则(不要重复自己)并尽可能多地重用代码。

原文由 Avram 发布,翻译遵循 CC BY-SA 3.0 许可协议

我刚刚将一个旧网站更新为 Laravel 5.3。这涉及按照 升级指南 中的建议从 Laravel Github 添加 4 个新的 Auth 控制器。

三个新控制器:RegisterController.php、LoginController.php 和 ResetPaswordController.php 都包含一个代码块

/**
 * Where to redirect users after resetting their password.
 *
 * @var string
 */
protected $redirectTo = '/home';

只需将 /home 更改为所需的重定向位置。至少在 Laravel 5.3 中对我有用(数据 2021 年 4 月)

原文由 bvanlew 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏