Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Auth\Middleware;use Closure;use Illuminate\Contracts\Routing\ResponseFactory;use Illuminate\Contracts\Routing\UrlGenerator;class RequirePassword{/*** The response factory instance.** @var \Illuminate\Contracts\Routing\ResponseFactory*/protected $responseFactory;/*** The URL generator instance.** @var \Illuminate\Contracts\Routing\UrlGenerator*/protected $urlGenerator;/*** The password timeout.** @var int*/protected $passwordTimeout;/*** Create a new middleware instance.** @param \Illuminate\Contracts\Routing\ResponseFactory $responseFactory* @param \Illuminate\Contracts\Routing\UrlGenerator $urlGenerator* @param int|null $passwordTimeout* @return void*/public function __construct(ResponseFactory $responseFactory, UrlGenerator $urlGenerator, $passwordTimeout = null){$this->responseFactory = $responseFactory;$this->urlGenerator = $urlGenerator;$this->passwordTimeout = $passwordTimeout ?: 10800;}/*** Handle an incoming request.** @param \Illuminate\Http\Request $request* @param \Closure $next* @param string|null $redirectToRoute* @param int|null $passwordTimeoutSeconds* @return mixed*/public function handle($request, Closure $next, $redirectToRoute = null, $passwordTimeoutSeconds = null){if ($this->shouldConfirmPassword($request, $passwordTimeoutSeconds)) {if ($request->expectsJson()) {return $this->responseFactory->json(['message' => 'Password confirmation required.',], 423);}return $this->responseFactory->redirectGuest($this->urlGenerator->route($redirectToRoute ?? 'password.confirm'));}return $next($request);}/*** Determine if the confirmation timeout has expired.** @param \Illuminate\Http\Request $request* @param int|null $passwordTimeoutSeconds* @return bool*/protected function shouldConfirmPassword($request, $passwordTimeoutSeconds = null){$confirmedAt = time() - $request->session()->get('auth.password_confirmed_at', 0);return $confirmedAt > ($passwordTimeoutSeconds ?? $this->passwordTimeout);}}