Laravel Nova登录后重定向到自定义路径

时间:2019-01-23 20:16:41

标签: laravel-nova

登录后,我需要根据其角色将用户重定向到其他位置。

逻辑很简单。我试图将其放在Nova redirectPath()的{​​{1}}函数中,但是我的行为非常复杂-有时登录后到达正确的位置,有时Nova会将我重定向到面板。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

经过几个小时的调查,我发现解决方案非常简单。

我要做的就是向nova LoginController添加以下功能:

protected function sendLoginResponse(Request $request)
{
    $request->session()->regenerate();

    $this->clearLoginAttempts($request);

    $redirectPath = $this->redirectPath();
    redirect()->setIntendedUrl($redirectPath);

    return redirect()->intended($redirectPath);
}

说明:

此功能在trait AuthenticatesUsers中实现。

intended函数(Redirector类的成员)基于先前预定的位置(如果不存在)基于给定的URL创建重定向响应。

如果会话中未设置url.intended,则用户将被重定向到LoginController::redirectPath生成的url。 但是,如果会话中确实存在url.intended条目,我们需要将其删除以强制将用户重定向到我们感兴趣的网址。

我看到的唯一问题是,我们失去了将用户重定向到他注销之前所在页面的功能。因此,选择开发人员是一个简单的选择……

相关问题