session()->get('platform_session_verified_at', 0); if ($verifiedAt > 0 && (time() - $verifiedAt) < self::VERIFY_TTL_SECONDS) { return $next($request); } $cookieHeader = (string) $request->headers->get('Cookie', ''); if ($cookieHeader === '') { return $this->clearAppSession($request); } try { $response = Http::withHeaders(['Cookie' => $cookieHeader]) ->timeout(3) ->connectTimeout(2) ->get('https://'.$authDomain.'/sso/ping'); } catch (\Throwable) { return $next($request); } if ($response->status() === 401) { return $this->clearAppSession($request); } if ($response->successful()) { $request->session()->put('platform_session_verified_at', time()); } return $next($request); } private function clearAppSession(Request $request): Response { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->route('sso.connect', [ 'redirect' => $request->fullUrl(), ]); } }