我正在尝试制作一个使用 Laravel 的 Auth 包的 Laravel 网站。我正在使用 Laravel 5.3.2。
我在用户表中创建了一个名为role
.
现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。请帮我弄清楚这怎么可能。
非常感谢您提前。
我正在尝试制作一个使用 Laravel 的 Auth 包的 Laravel 网站。我正在使用 Laravel 5.3.2。
我在用户表中创建了一个名为role
.
现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。请帮我弄清楚这怎么可能。
非常感谢您提前。
当用户登录时,这是通过您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');
}
}
除了覆盖一些默认 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;
}
})