// Script para diagnosticar localStorage e limpar tokens expirados console.log("\n========== DIAGNÓSTICO LOCALSTORAGE =========="); const keys = ["authToken", "token", "refreshToken", "authUser", "appSession"]; keys.forEach((k) => { const val = localStorage.getItem(k); if (val) { console.log( `${k}:`, val.length > 100 ? val.substring(0, 100) + "..." : val ); } else { console.log(`${k}: (ausente)`); } }); // Decode JWT se existir function decodeJwt(token: string | null): { valid: boolean; payload?: { exp?: number; role?: string; sub?: string }; expired?: boolean; } { if (!token) return { valid: false }; try { const parts = token.split("."); if (parts.length !== 3) return { valid: false }; const payload = JSON.parse(atob(parts[1])); const now = Math.floor(Date.now() / 1000); const expired = payload.exp ? payload.exp < now : false; return { valid: true, payload, expired }; } catch { return { valid: false }; } } const tok = localStorage.getItem("authToken") || localStorage.getItem("token"); if (tok) { const decoded = decodeJwt(tok); console.log("\n[Decode token]", decoded); if (decoded.expired) { console.warn("⚠️ Token expirado! Limpando..."); localStorage.removeItem("authToken"); localStorage.removeItem("token"); localStorage.removeItem("refreshToken"); localStorage.removeItem("authUser"); console.log( "✅ Tokens removidos. Recarregue a página e faça login novamente." ); } else { console.log("✅ Token ainda válido."); } } else { console.log( "\n[Diagnóstico] Nenhum authToken encontrado. Usuário não autenticado." ); } console.log("==============================================\n");