Laravel 登录后将用户重定向到原始目的地

Posted

技术标签:

【中文标题】Laravel 登录后将用户重定向到原始目的地【英文标题】:Laravel Redirect user to original destination after login 【发布时间】:2018-12-24 18:39:20 【问题描述】:

在我的 Laravel 应用程序中,我有一个只能由 Auth 用户访问的私有页面。我也在使用社交登录,所以当用户在没有登录的情况下进入私人页面时,Laravel 将用户发送到登录页面,成功登录后,用户被发送回原始目的地(私人页面)。只有当用户通过 Laravel 内置的 Auth 系统登录时,当用户通过 Social Login 方法登录时,用户将被引导到主页。

这是我登录后的社交登录处理程序:

public function handleProviderCallback($provider)


    $user = Socialite::driver($provider)->user();

    $authUser = $this->findOrCreateUser($user, $provider);
    Auth::login($authUser, true);
    return redirect('/home');

如果用户在会话中,我如何将其发送到原始目的地,否则将他们送回家中。

【问题讨论】:

return redirect()->intended('/home');使用内置的laravel预期方法 @Saad Suri 感谢它的工作:) 祝你有美好的一天 将其作为答案发布,以便未来的读者可以获得帮助 这是一个重复的问题 - [***.com/questions/15389833/… 【参考方案1】:

使用,

return redirect()->intended('/home')

重定向器上的预期方法会将用户重定向到他们尝试访问的 URL,然后被身份验证中间件拦截。如果预期的目的地不可用,则可以为此方法提供一个备用 URI。

【讨论】:

【参考方案2】:

documentation 提到的很简短,但是 Laravel 有一个内置方法:

return redirect()->intended('/home')

每当 Auth 中间件因为用户未登录而重定向用户时,他的原始 url 将被存储。 intended 检查该 url 是否已存储并使用它,或者您作为参数提供的后备。

【讨论】:

以上是关于Laravel 登录后将用户重定向到原始目的地的主要内容,如果未能解决你的问题,请参考以下文章

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

如何将所有访客请求重定向到 Laravel 应用程序中的登录页面?

如何将客人重定向到登录页面,在laravel 5.2登录后重定向回来[关闭]

将数据提交到 db 后将用户重定向到 PayPal

如何在laravel中登录后重定向特定页面

React Router - PrivateRoute,登录后重定向到原始目的地