gpt4 book ai didi

laravel - 如何根据目标用户的角色将其重定向到不同的路线?

转载 作者:行者123 更新时间:2023-12-02 14:11:19 25 4
gpt4 key购买 nike

我想根据用户的角色将他们重定向到不同的路线。我的应用程序中有两个安全区域,“管理”和“仪表板”。我想检查用户是否经过身份验证,然后重定向到预期,但如果用户具有角色编辑器,则应将其重定向到仪表板,否则,如果他具有管理员角色,则应将其重定向到管理区域。

我在登录中使用 AuthenticatesAndRegistersUsers 类。我的自定义 Controller 上有这个:

 /**
* The default redirecTo path.
*
*/
protected $redirectTo = '/dashboard';

因此,当用户通过身份验证时,它将被重定向到仪表板,但我想检查预期的网址是否在管理员组路由上,以及用户是否具有管理员角色,它应该被重定向到管理区域。

我正在使用此中间件重定向到登录:

public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('auth/login');
}
}

return $next($request);
}

最佳答案

您可以覆盖 redirectPathAuthController 中的特征使用的方法注入(inject)您需要的逻辑。像这样的事情:

/**
* Get the post register / login redirect path.
*
* @return string
*/
public function redirectPath()
{
// Logic that determines where to send the user
if (\Auth::user()->type == 'admin') {
return '/admin';
}

return '/dashboard';
}

编辑:

Laravel 在 AuthenticatesAndRegistersUsers 中使用以下声明成功登录后重定向用户的特征:

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

这将尝试将用户重定向到之前尝试过的 URL。

如果您需要在用户登录后将用户重定向到正确的位置,最好通过向身份验证中间件添加更多逻辑来完成。

关于laravel - 如何根据目标用户的角色将其重定向到不同的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31012985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com