import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { supabase } from "@/lib/supabaseClient"; import { authStorage } from "@/lib/authStorage"; import { useDocumentTitle } from '@/hooks/useDocumentTitle'; import { handleError } from '@/lib/errorHandler'; /** * ForceLogout - Hidden endpoint for completely clearing auth session * Access via: /force-logout * Not linked anywhere in the UI - for manual navigation only */ const ForceLogout = () => { useDocumentTitle('Signing Out'); const navigate = useNavigate(); useEffect(() => { const performFullLogout = async () => { try { // 1. Sign out from Supabase await supabase.auth.signOut(); // 2. Clear all auth-related storage authStorage.clearAll(); // 3. Brief delay to ensure cleanup completes await new Promise(resolve => setTimeout(resolve, 500)); // 4. Redirect to home page navigate('/', { replace: true }); } catch (error) { handleError(error, { action: 'Force logout', metadata: { operation: 'forceLogout' } }); // Still redirect even if there's an error navigate('/', { replace: true }); } }; performFullLogout(); }, [navigate]); return (
Clearing session...
You will be redirected shortly.