Php 在Laravel中进行身份验证时,如何检查用户表中的参数?
我正在尝试制作一个使用 Laravel的授权包。我使用的是Laravel 5.3.2 我在用户表中创建了一个名为Php 在Laravel中进行身份验证时,如何检查用户表中的参数?,php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,我正在尝试制作一个使用 Laravel的授权包。我使用的是Laravel 5.3.2 我在用户表中创建了一个名为role的字段 现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。 请帮我弄清楚这是怎么可能的 非常感谢您。当用户登录时,这是通过位于app\Http\Controllers\Auth的LoginController.php完成的 此控制器使用名为AuthenticatesUsers的特性 此特性有一个名为authenticated()的方法,默认情况下该方
role
的字段
现在我想知道如何在身份验证过程中检查用户角色,然后根据角色重定向到所需的视图。
请帮我弄清楚这是怎么可能的
非常感谢您。当用户登录时,这是通过位于
app\Http\Controllers\Auth的LoginController.php
完成的
此控制器使用名为AuthenticatesUsers
的特性
此特性有一个名为authenticated()
的方法,默认情况下该方法为空。如果trait不为空,则调用此方法-在完成所有必要的登录之后
您可以在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');
}
}
当用户登录时,可以通过位于app\Http\Controllers\Auth
此控制器使用名为AuthenticatesUsers
的特性
此特性有一个名为authenticated()
的方法,默认情况下该方法为空。如果trait不为空,则调用此方法-在完成所有必要的登录之后
您可以在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方法。我建议一种其他方法:根据用户的角色将用户重定向到一条路线,该路线对重定向用户负责
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 authenticates在5.3中已做了很多更改,因此答案不适用于5.3 Laravel:)不再有postLogin()
方法,而是authenticated()方法
在用户成功登录后激发的方法Indly check this answer Laravel authenticates在5.3中做了很多更改,因此答案不适用于5.3 Laravel:)不再有postLogin()
方法,而是authenticated()
在用户成功登录后激发的方法两位绅士的评论都非常有用,我从他们的想法中学到了很多。我还发现了一个有用的链接:两位绅士的评论都非常有用,我从他们的想法中学到了很多。我还发现了一个有用的链接: