在Laravel中进行身份验证时如何检查用户表中的参数?

时间:2016-08-28 08:49:25

标签: php laravel laravel-5.3

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

我在用户表中创建了一个名为role的字段。

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

非常感谢你。

2 个答案:

答案 0 :(得分:3)

当用户登录时,这是通过位于LoginController.php

app\Http\Controllers\Auth完成的

此控制器使用名为AuthenticatesUsers的特征。

此特征有一个名为authenticated()的方法,默认情况下为空。如果特征没有为空,则调用此方法 - 在完成所有必要的loggin之后。

您可以在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');
    }
}

答案 1 :(得分: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;
    }
})