在 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;
}
})
我正在尝试制作一个 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;
}
})