Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Auth/Middleware/RequirePassword.php
Строк: 108
<?php

namespace IlluminateAuthMiddleware;

use 
Closure;
use 
IlluminateContractsRoutingResponseFactory;
use 
IlluminateContractsRoutingUrlGenerator;

class 
RequirePassword
{
    
/**
     * The response factory instance.
     *
     * @var IlluminateContractsRoutingResponseFactory
     */
    
protected $responseFactory;

    
/**
     * The URL generator instance.
     *
     * @var IlluminateContractsRoutingUrlGenerator
     */
    
protected $urlGenerator;

    
/**
     * The password timeout.
     *
     * @var int
     */
    
protected $passwordTimeout;

    
/**
     * Create a new middleware instance.
     *
     * @param  IlluminateContractsRoutingResponseFactory  $responseFactory
     * @param  IlluminateContractsRoutingUrlGenerator  $urlGenerator
     * @param  int|null  $passwordTimeout
     * @return void
     */
    
public function __construct(ResponseFactory $responseFactoryUrlGenerator $urlGenerator$passwordTimeout null)
    {
        
$this->responseFactory $responseFactory;
        
$this->urlGenerator $urlGenerator;
        
$this->passwordTimeout $passwordTimeout ?: 10800;
    }

    
/**
     * Handle an incoming request.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  Closure  $next
     * @param  string|null  $redirectToRoute
     * @param  int|null  $passwordTimeoutSeconds
     * @return mixed
     */
    
public function handle($requestClosure $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  IlluminateHttpRequest  $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);
    }
}
Онлайн: 0
Реклама