大佬教程收集整理的这篇文章主要介绍了仅当用户使用Laravel处于活动状态时登录,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
login()
通过将此功能放在您的中来覆盖默认功能LoginController
:
public function login(\Illuminate\http\request $request) {
$this->valIDateLogin($request);
// If the class is using the ThrottlesLogins Trait, we can automatically throttle
// the login attempts for this application. We'll key this by the username and
// the IP address of the clIEnt making these requests into this application.
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
// This section is the only change
if ($this->guard()->valIDate($this->credentials($request))) {
$user = $this->guard()->getLastAttempted();
// Make sure the user is active
if ($user->active && $this->attemptLogin($request)) {
// Send the normal successful login response
return $this->sendLoginResponse($request);
} else {
// Increment the Failed login attempts and redirect BACk to the
// login form with an error message.
$this->incrementLoginAttempts($request);
return redirect()
->BACk()
->withinput($request->only($this->username(), 'remember'))
->withErrors(['active' => 'You must be active to login.']);
}
}
// If the login attempt was unsuccessful we will increment the number of attempts
// to login and redirect the user BACk to the login form. Of course, when this
// user surpasses their maximum number of attempts they will get locked out.
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
login()
建议在此问题的许多其他答案上覆盖这种方式的方法,因为它使您仍然可以使用Laravel
5.4+的许多更高级的身份验证功能,例如登录限制,多个身份验证防护驱动程序/提供程序等。仍然允许您设置自定义错误消息。
更改或覆盖您的postLogin()
函数,AuthController
如下所示:
public function postLogin(request $request)
{
$this->valIDate($request, [
'email' => 'required|email', 'password' => 'required',
]);
$credentials = $this->getCredentials($request);
// This section is the only change
if (Auth::valIDate($credentials)) {
$user = Auth::getLastAttempted();
if ($user->activE) {
Auth::login($user, $request->has('remember'));
return redirect()->intended($this->redirectPath());
} else {
return redirect($this->loginPath()) // Change this to redirect elsewhere
->withinput($request->only('email', 'remember'))
->withErrors([
'active' => 'You must be active to login.'
]);
}
}
return redirect($this->loginPath())
->withinput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginmessage(),
]);
}
此代码将重定向回登录页面,并显示一条有关用户处于非活动状态的错误消息。如果要重定向到身份验证页面,则可以更改我用注释标记的行Change this to
redirect elsewhere
。
以上是大佬教程为你收集整理的仅当用户使用Laravel处于活动状态时登录全部内容,希望文章能够帮你解决仅当用户使用Laravel处于活动状态时登录所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。