riseup-squad18/MEDICONNECT 2/scripts/clear-expired-tokens.ts
2025-10-07 14:53:47 -03:00

59 lines
1.7 KiB
TypeScript

// 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");