Implement Session Persistence: 'Keep me logged in' now works by toggling between localStorage and sessionStorage based on user choice

This commit is contained in:
2026-03-01 12:19:30 -05:00
parent 4d7b472c6c
commit a092df33f7
4 changed files with 122 additions and 50 deletions

View File

@ -3,4 +3,28 @@ import { createClient } from '@supabase/supabase-js'
export const SUPABASE_URL = 'https://bjgixlugjzsccazdfmph.supabase.co'
export const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJqZ2l4bHVnanpzY2NhemRmbXBoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwNjQyMTAsImV4cCI6MjA4NzY0MDIxMH0.untLQoPi4yUr3cPnxo23wYSlg6xnNK0daKu9UHmFTp8'
export const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
// SIBU | Hybrid Storage: Maneja persistencia según la voluntad del usuario
const authStorage = {
getItem: (key: string) => localStorage.getItem(key) || sessionStorage.getItem(key),
setItem: (key: string, val: string) => {
// Si ya existe en sessionStorage, seguimos guardando allí (no persistente)
if (sessionStorage.getItem(key)) {
sessionStorage.setItem(key, val)
} else {
// Por defecto guardamos en localStorage (persistente)
localStorage.setItem(key, val)
}
},
removeItem: (key: string) => {
localStorage.removeItem(key)
sessionStorage.removeItem(key)
}
}
export const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
auth: {
storage: authStorage as any,
autoRefreshToken: true,
persistSession: true
}
})