Laravel Authenticate Login and Logout Functions
2 min readOct 24, 2021
This is default authenticate’s Login and Logout Functions. Just copy and paste login and logout functions to your controller and redirect to or route your custom url.
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Validation\ValidationException;
- Login Function.
public function login(Request $request)
{
$this->validateLogin($request);
if (method_exists($this, 'hasTooManyLoginAttempts') && $this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
$seconds = $this->limiter()->availableIn(
$this->throttleKey($request)
);
return throw ValidationException::withMessages([
$this->username() => [trans('auth.throttle', [
'seconds' => $seconds,
'minutes' => ceil($seconds / 60),
])],
])->status(Response::HTTP_TOO_MANY_REQUESTS);
}
if ($this->attemptLogin($request)) {
$request->session()->regenerate();
$this->clearLoginAttempts($request);
if ($response = $this->authenticated($request, $this->guard()->user())) {
return $response;
}
return $request->wantsJson() ? new JsonResponse([], 204) : redirect()->route('/');
}
$this->incrementLoginAttempts($request);
return throw ValidationException::withMessages([
$this->username() => [trans('auth.failed')],
]);
}
2. Logout Function.
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
if ($response = $this->loggedOut($request)) {
return $response;
}
return $request->wantsJson() ? new JsonResponse([], 204) : redirect()->to('http://laravel-sub-domain.com:8000/');
}
— Shah Md. Iktakhirul Islam, Software Engineer.
Contact Number: 01683201359
Email: iktakhairul@gmail.com
GitHub Profile: https://github.com/iktakhairul