我正在尝试制作一个使用的Laravel网站 Laravel的Auth包。我使用的是Laravel 5.3.2。
我在用户表中创建了一个名为role
的字段。
现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。 请帮我弄清楚这是怎么可能的。
非常感谢你。
答案 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;
}
})