Improve PWA offline functionality and fix session caching

- Enable navigateFallback for offline navigation support
- Add JSON files to glob patterns for heroicons support
- Change Authentik API caching from NetworkFirst to NetworkOnly to prevent stale session data
- Add offline detection in checkSessionStatus with proper user feedback
- Add no-cache headers to /api/auth/status endpoint to prevent browser caching
- Show "Modo Offline" toast when user tries to check session while offline
This commit is contained in:
2025-10-13 02:21:50 -06:00
parent 226fcc7c64
commit 87ae5b95e6
3 changed files with 35 additions and 11 deletions

View File

@@ -53,6 +53,18 @@ export const useAuthentik = () => {
const checkSessionStatus = async () => {
const toast = useToast()
// Verificar si está offline primero
if (!navigator.onLine) {
toast.add({
title: 'Modo Offline',
description: 'No se puede validar sesión sin conexión',
color: 'gray',
icon: 'i-heroicons-wifi',
timeout: 5000
})
return
}
// Mostrar toast de "verificando..."
toast.add({
title: 'Verificando sesión...',
@@ -93,6 +105,18 @@ export const useAuthentik = () => {
})
}
} catch (error) {
// Verificar si está offline ahora (pudo desconectarse durante la petición)
if (!navigator.onLine) {
toast.add({
title: 'Modo Offline',
description: 'No se puede validar sesión sin conexión',
color: 'gray',
icon: 'i-heroicons-wifi',
timeout: 5000
})
return
}
// Si el error es por redirect de Authentik (CORS/fetch error), significa que no hay sesión
// Authentik redirige a login cuando no hay sesión válida, causando error CORS en fetch
const errorMessage = error?.message || error?.toString() || ''