我将如何使用额外的验证规则扩展 laravel 登录。我想检查用户是否在成功登录时具有角色,如果用户没有附加角色我想拒绝登录过程。
我看到在 LoginController 我可以覆盖登录方法
public function login(\Illuminate\Http\Request $request)
{
//dd($this->validateLogin($request));
parent::login($request);
}
但我不知道如何取回用户对象
我将如何使用额外的验证规则扩展 laravel 登录。我想检查用户是否在成功登录时具有角色,如果用户没有附加角色我想拒绝登录过程。
我看到在 LoginController 我可以覆盖登录方法
public function login(\Illuminate\Http\Request $request)
{
//dd($this->validateLogin($request));
parent::login($request);
}
但我不知道如何取回用户对象
如果我理解正确,用户必须对自己进行身份验证,然后您要检查角色。它不需要具有特定的角色。如果是这样,您可以像这样覆盖 LoginController 上的 authenticated() 方法:(您必须在文件顶部编写use Illuminate\Http\Request; 。
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
if(empty($user->role)) {
$this->guard()->logout();
return back()->withErrors(['There is no role specified']);
}
}
如果您希望用户具有特定角色,您可以覆盖 LoginController 中的 credentials() 方法:
protected function credentials(Request $request)
{
$credentials = $request->only($this->username(), 'password');
$credentials['role'] = 'requiredRole';
return $credentials;
}