"use client"; import { useEffect } from "react"; export function AuthTokenClearer({ children }: { children: React.ReactNode }) { useEffect(() => { // Aggressive clearing of ALL storage before authentication // Clear localStorage completely const localStorageKeys = Object.keys(localStorage); localStorageKeys.forEach((key) => { if ( key.includes("clerk") || key.includes("session") || key.includes("__clerk") ) { localStorage.removeItem(key); } }); // Clear sessionStorage completely const sessionStorageKeys = Object.keys(sessionStorage); sessionStorageKeys.forEach((key) => { if ( key.includes("clerk") || key.includes("session") || key.includes("__clerk") ) { sessionStorage.removeItem(key); } }); // Clear ALL cookies aggressively with more thoroughness const clearCookies = () => { const cookies = document.cookie.split(";"); const domains = [ window.location.hostname, `.${window.location.hostname}`, "localhost", ".localhost", ]; cookies.forEach((cookie) => { const [name] = cookie.split("="); const trimmedName = name.trim(); // Target all auth-related cookies if ( trimmedName.includes("clerk") || trimmedName.includes("session") || trimmedName.includes("__clerk") || trimmedName.includes("__client") || trimmedName.includes("sb-") ) { domains.forEach((domain) => { document.cookie = `${trimmedName}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=${domain};`; document.cookie = `${trimmedName}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; }); } }); }; clearCookies(); // Run it twice to be sure (some cookies are stubborn) setTimeout(clearCookies, 100); console.log("[AuthTokenClearer] Comprehensive auth token purge complete"); }, []); return <>{children}; }