0

我正在尝试制作一个使用 Laravel 的 Auth 包的 Laravel 网站。我正在使用 Laravel 5.3.2。

我在用户表中创建了一个名为role.

现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。请帮我弄清楚这怎么可能。

非常感谢您提前。

4

2 回答 2

4

当用户登录时,这是通过您LoginController.php位于app\Http\Controllers\Auth

此控制器使用一个名为AuthenticatesUsers.

这个 trait 有一个authenticated()默认为空的方法。如果特征不为空,则调用此方法 - 在完成所有必要的登录后。

您可以在您的中覆盖此方法AuthenticationController.php并添加您要求的功能。一个例子是:

// You actually get an Auth\User object passed to you by the trait!
public function authenticated(Request $request, $user)
{
    if($user->role == 'admin') {
        // You could do anything here
        return redirect()->route('admin-dashboard');
    } else {
        return redirect()->route('home');
    }
}
于 2016-08-28T09:10:10.000 回答
1

除了覆盖一些默认 Laravel 方法的解决方案。我建议另一种方法:将用户重定向到一个路由,该路由负责根据用户在 AuthController中的角色重定向用户

protected $redirectTo = '/redirect';

在路线中

Route::get('redirect', function(){
    switch(auth()->user()->role){
        case 1:
            return redirect()->to();
        break;
        case 2:
            return redirect()->to();
        break;
    }
})
于 2016-08-28T09:14:52.900 回答