File manager - Edit - /home/autoph/public_html/projects/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php
Back
<?php namespace Illuminate\Session\Middleware; use Closure; use Illuminate\Auth\AuthenticationException; use Illuminate\Contracts\Auth\Factory as AuthFactory; use Illuminate\Contracts\Session\Middleware\AuthenticatesSessions; use Illuminate\Http\Request; class AuthenticateSession implements AuthenticatesSessions { /** * The authentication factory implementation. * * @var \Illuminate\Contracts\Auth\Factory */ protected $auth; /** * The callback that should be used to generate the authentication redirect path. * * @var callable */ protected static $redirectToCallback; /** * Create a new middleware instance. * * @param \Illuminate\Contracts\Auth\Factory $auth * @return void */ public function __construct(AuthFactory $auth) { $this->auth = $auth; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (! $request->hasSession() || ! $request->user() || ! $request->user()->getAuthPassword()) { return $next($request); } if ($this->guard()->viaRemember()) { $passwordHash = explode('|', $request->cookies->get($this->guard()->getRecallerName()))[2] ?? null; if (! $passwordHash || ! hash_equals($request->user()->getAuthPassword(), $passwordHash)) { $this->logout($request); } } if (! $request->session()->has('password_hash_'.$this->auth->getDefaultDriver())) { $this->storePasswordHashInSession($request); } if (! hash_equals($request->session()->get('password_hash_'.$this->auth->getDefaultDriver()), $request->user()->getAuthPassword())) { $this->logout($request); } return tap($next($request), function () use ($request) { if (! is_null($this->guard()->user())) { $this->storePasswordHashInSession($request); } }); } /** * Store the user's current password hash in the session. * * @param \Illuminate\Http\Request $request * @return void */ protected function storePasswordHashInSession($request) { if (! $request->user()) { return; } $request->session()->put([ 'password_hash_'.$this->auth->getDefaultDriver() => $request->user()->getAuthPassword(), ]); } /** * Log the user out of the application. * * @param \Illuminate\Http\Request $request * @return void * * @throws \Illuminate\Auth\AuthenticationException */ protected function logout($request) { $this->guard()->logoutCurrentDevice(); $request->session()->flush(); throw new AuthenticationException( 'Unauthenticated.', [$this->auth->getDefaultDriver()], $this->redirectTo($request) ); } /** * Get the guard instance that should be used by the middleware. * * @return \Illuminate\Contracts\Auth\Factory|\Illuminate\Contracts\Auth\Guard */ protected function guard() { return $this->auth; } /** * Get the path the user should be redirected to when their session is not authenticated. * * @param \Illuminate\Http\Request $request * @return string|null */ protected function redirectTo(Request $request) { if (static::$redirectToCallback) { return call_user_func(static::$redirectToCallback, $request); } } /** * Specify the callback that should be used to generate the redirect path. * * @param callable $redirectToCallback * @return void */ public static function redirectUsing(callable $redirectToCallback) { static::$redirectToCallback = $redirectToCallback; } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.17 |
proxy
|
phpinfo
|
Settings