How to use getLastAttempted()
in laravel 5.3?
$user = auth()->getLastAttempted();
dd($user);
if (!$user->activated) {
return redirect('/login')->with('status', 'This account has not been activated.');
}
I want to check a user is activated
or not when login (There is a activated
field in users
table ), I add the code above to login()
method below of \\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Auth\\AuthenticatesUsers.php
,
as follow:
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
// start
$user = auth()->getLastAttempted();
dd($user);
if (!$user->activated) {
return redirect('/login')->with('status', 'This account has not been activated.');
}
//end
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
The result of dd($user);
is null.
What shoud I do?
wouldn't it make more sense to put your code chunks inside the if else statement?
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
// start
$user = \Auth::user();
dd($user);
if (!$user->activated) {
//instead of redirecting, increment attempts and send failed response
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}else{
return $this->sendLoginResponse($request);
}
//end
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
You can override the validateLogin function:
$this->validate($request, [
$this->username() => 'required|exists:users,' . $this->username() . ',activated,1',
'password' => 'required',
]);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.