当前位置: 首页 > 知识库问答 >
问题:

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

上官和韵
2023-03-14

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

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

public function handleProviderCallback($provider)
{

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

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

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

共有2个答案

邹学民
2023-03-14

留档提到它非常简短,但Laravel有一个内置的方法:

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

每当身份验证中间件因为用户未登录而重定向用户时,将存储其原始urldesigned检查是否存储了该url并使用该url,或者您提供的回退作为参数。

汝跃
2023-03-14

使用

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

重定向器上的预期方法将用户重定向到他们在被身份验证中间件拦截之前试图访问的URL。如果预期的目的地不可用,可以为该方法提供回退URI。

 类似资料:
  • 这似乎是一个非常基本的流程,而且Laravel有很多很好的基本解决方案,我觉得我错过了一些东西。 用户单击需要身份验证的链接。Laravel的身份验证过滤器启动并将它们路由到登录页面。用户登录,然后转到他们试图在“身份验证”过滤器启动之前进入的原始页面。 有没有一个好方法可以知道他们最初想要到达的页面?由于Laravel是拦截请求的人,我不知道它是否会在用户登录后跟踪某个地方以方便路由。 如果没有

  • 我在使用React路由器进行登录后重定向时遇到问题。 假设用户试图导航到但被重定向到因为他们的会话已过期。endpoint存在于PrivateRoute中。 登录后,我希望用户被引导到,但相反,他们目前只重定向到。 成功登录后,如何利用原始目的地进行重定向? 谢谢你的时间!

  • 我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码: 在应用程序中提供帮助。rb: 在SigninController中: 在登录/索引页中:

  • 我正在尝试实现一个功能,在登录后,用户会根据其角色重定向到URL。我已经设置了角色部分,但是在登录后立即测试用户的属性时遇到了问题。 我按照这里的说明创建了一个用户登录页面。我有一个看起来像这样的: 我的函数验证用户,但我不知道如何在登录后立即访问用户对象。这就是我目前拥有的: 当我第一次尝试使用管理员帐户登录时,我会进入路径,因为此时没有任何经过身份验证的用户对象。 在尝试登录后,但是得到了一个

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 我正在我是身份提供者的地方实施SSO,现在我能够成功登录到服务提供者。但它把我带到了主页。我想在发布响应时指定着陆页URL。搜索了很多,但找不到任何令人信服的东西。不太知道SAML响应的哪个元素携带着陆页URL或采用我必须指定的形式。使用java和opensaml库生成响应。