Fix auth token expiry and storage

This commit is contained in:
gpt-engineer-app[bot]
2025-10-11 16:43:36 +00:00
parent 4d40bb7569
commit 595ab97916

View File

@@ -75,24 +75,43 @@ class AuthStorage {
}
getItem(key: string): string | null {
console.log('[AuthStorage] Getting key:', key);
try {
if (this.storage) {
const value = this.storage.getItem(key);
console.log('[AuthStorage] Retrieved from storage:', !!value);
if (value) {
// Verify it's not expired
if (key.includes('auth-token')) {
try {
const parsed = JSON.parse(value);
if (parsed.expires_at && parsed.expires_at < Date.now()) {
console.warn('[AuthStorage] Token expired, removing');
// Supabase stores expires_at in seconds, Date.now() is in milliseconds
// Check if expires_at is in seconds (< year 3000 in milliseconds)
const expiryTime = parsed.expires_at > 10000000000
? parsed.expires_at // Already in milliseconds
: parsed.expires_at * 1000; // Convert from seconds to milliseconds
if (parsed.expires_at && expiryTime < Date.now()) {
console.warn('[AuthStorage] Token expired, removing', {
expires_at: parsed.expires_at,
expiryTime: new Date(expiryTime),
now: new Date()
});
this.removeItem(key);
return null;
}
} catch {}
console.log('[AuthStorage] Token valid, expires:', new Date(expiryTime));
} catch (e) {
console.warn('[AuthStorage] Could not parse token for expiry check:', e);
}
}
}
return value;
}
console.log('[AuthStorage] Using memory storage');
return this.memoryStorage.get(key) || null;
} catch (error) {
console.error('[AuthStorage] Error reading from storage:', error);
@@ -101,6 +120,7 @@ class AuthStorage {
}
setItem(key: string, value: string): void {
console.log('[AuthStorage] Setting key:', key);
try {
if (this.storage) {
this.storage.setItem(key, value);