我的'用户'表具有'角色'列,当用户注册或登录时,我希望他们根据角色列重定向。我怎样才能做到这一点?laravel 5根据用户角色登录后重定向用户
回答
我添加了这个功能,AuthController.php,一切都奇迹般地固定
public function authenticated($request , $user){
if($user->role=='super_admin'){
return redirect()->route('admin.dashboard') ;
}elseif($user->role=='brand_manager'){
return redirect()->route('brands.dashboard') ;
}
}
如果您使用的是Laravel提供的认证系统,则可以覆盖Auth\AuthController
中的redirectPath
方法。
例如,这将与角色“管理员”向/admin
和任何其他用户的用户重定向到/account
:
public function redirectPath()
{
if (\Auth::user()->role == 'admin') {
return "/admin";
// or return route('routename');
}
return "/account";
// or return route('routename');
}
您也可以使用Laravel Authorization(在5.1.11中引入)来管理角色的逻辑。
任何redirectPath()函数中的重定向会导致以下错误:Response.php中的ErrorException异常337行: 标题可能不包含多于一个标题,检测到新行 – Salar
您不需要返回重定向,只需要一个字符串p ath – SlateEntropy
我想使用命名的路由,我不能返回任何字符串 – Salar
你可以这样做处理句柄功能像这里面的中间件RedirectIfAuthenticated.php请求:
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
if (Auth::user()->role == 'admin') {
return redirect('/admin');
}else{
return redirect('/');
}
}
return $next($request);
}
- 1. ASP.NET根据角色重定向用户
- 2. 根据用户的角色重定向
- 3. 根据用户名登录后重定向用户
- 4. 根据用户角色登录重定向到不同的页面后
- 5. PHP根据用户的“角色”登录
- 6. 根据用户的角色和状态在laravel中登录
- 7. 在登录时根据用户类型重定向用户
- 8. PDO:MVC如何根据用户类型重定向用户登录
- 9. Laravel 5 - 根据用户在身份验证中的角色将用户重定向到特定页面
- 10. Laravel 5登录后重定向回家
- 11. Laravel 5 - 针对特定用户角色
- 12. 如何根据wp用户元密钥登录后重定向用户?
- 13. 重定向用户登录后根据他们的访问级别(用户组)
- 14. 登录后重定向fos用户symfony
- 15. Magento - 登录后重定向用户组
- 16. 登录后重定向用户
- 17. 用户登录后重定向
- 18. 用户登录后自动重定向
- 19. 用户登录后Codeigniter重定向?
- 20. 用户登录后页面重定向
- 21. 用户登录后Symfony重定向
- 22. 重定向登录用户
- 23. 重定向登录用户
- 24. 登录时基于用户角色的重定向
- 25. MVC3 - 基于角色的用户登录并重定向
- 26. Laravel 5根据角色重定向到不同的路由
- 27. Laravel 5根据用户角色选择行的范围
- 28. 如何在asp.net中使用角色管理登录后重定向用户?
- 29. 在laravel当用户登录和命中/登录重定向到根主页
- 30. JSP登录用户角色
我觉得值得一提的是这个方法在注册后不会重定向用户。 'authenticated'函数只在'AuthenticatesUsers'特性中被调用。 – SlateEntropy