Laravel Authenticate Login and Logout Functions

Shah Md. Iktakhairul Islam
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;
  1. 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

--

--

No responses yet