laravel - 在 Laravel 中登录多个角色后重定向

标签 laravel redirect authentication roles

我试图在登录后重定向到特定页面。我的 LoginController 文件中有这段代码,在 LoginController 类中

public function authenticated($request , $user){
    if($user->rol=='Administrador'){
        return redirect()->route('home') ;
    }elseif($user->rol=='Docente'){
        return redirect()->route('balance') ;
    }else {
        return redirect()->route('profile');
    }

}

另外我已经把路由放在我的 web.php 文件中

当我试图查看这个功能是否有效时,问题就来了,因为当我介绍一个校友用户时,它应该重定向到个人资料,但它没有

最佳答案

LoginController.php 文件(当您运行 php artisan make:auth 时生成),有一个处理它的属性。

protected $redirectTo = '/home';

删除这个属性,并添加一个同名的方法。

public function redirectTo(){
    // Code here
}

redirectTo 方法将优先于 redirectTo 属性。这使我们能够定义逻辑来处理具有不同角色的用户到不同的路径。

public function redirectTo(){

    // User role
    $role = Auth::user()->role->name; 

    // Check user role
    switch ($role) {
        case 'Manager':
                return '/dashboard';
            break;
        case 'Employee':
                return '/projects';
            break; 
        default:
                return '/login'; 
            break;
    }
}

来源:Learn how to redirect authenticated users to corresponding path in Laravel

关于laravel - 在 Laravel 中登录多个角色后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718827/

相关文章:

php - 干预图像 : Save image directly from an url with original file name and ext?

php - 所有模型的 Laravel 存储库模式

php登录错误检查脚本与sql

c# - OWIN 自定义身份验证服务

ios - phonegap for ios 中的 facebook 身份验证

mysql - 在 mysql 上使用变量,就像 Laravel 查询生成器上的句子一样

laravel - 无法以编程方式在 GitHub 中创建标签 - ISO8601 时间戳无效

Java HtmlUnit 表单重定向问题

codeigniter - 使用 Codeigniter 重定向 SEO 友好的 url?

django - 如何在 Django View 中使用 get 参数重定向?