在 Laravel 中验证时如何检查用户 table 的参数?

How to check a parameter from user table when authenticating in Laravel?

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

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

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

非常感谢您。

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

LoginController.php 完成的

这个控制器使用了一个名为 AuthenticatesUsers 的特征。

这个特征有一个名为 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');
    }
}

解决方案覆盖一些默认的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;
    }
})