responseFactory = $responseFactory; $this->urlGenerator = $urlGenerator; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $redirectToRoute * * @return mixed */ public function handle($request, Closure $next, $redirectToRoute = null) { if ($this->shouldConfirmPassword($request)) { if ($request->expectsJson()) { return $this->responseFactory->json([ 'message' => 'Password confirmation required.', ], 423); } return $this->responseFactory->redirectGuest( $this->urlGenerator->route($redirectToRoute ?? '{{singularSlug}}.password.confirm') ); } return $next($request); } /** * Determine if the confirmation timeout has expired. * * @param \Illuminate\Http\Request $request * * @return bool */ protected function shouldConfirmPassword($request) { $confirmedAt = time() - $request->session()->get('{{singularSnake}}.auth.password_confirmed_at', 0); return $confirmedAt > config('auth.password_timeout', 10800); } }