Cada vez que se abre o se recarga Trazo, el navegador comprueba la sesión con la API antes de mostrar una pantalla. Solo la API puede decir que la sesión terminó. Una falla de red, un 502/504 del gateway o el modo mantenimiento no cierran la sesión: llevan a una pantalla de espera con “Reintentar”.
Paso a paso
- PersonaAbre o recarga una página de Trazo
- Navegador¿Hay un token guardado?
El token de la sesión vive en memoria y en
sessionStorage(se borra al cerrar la pestaña). El de un ingreso a medias nunca se guarda. - NavegadorVa a /ingresar con ?volver=
- NavegadorPide GET /auth/me
- Navegador¿Respondió la API?
Sin red, con 502 o 504 sin cuerpo de la API (
SERVER_UNREACHABLE) o en mantenimiento (503), la sesión se conserva. - API¿Token vigente, usado hace menos de 1 h y cuenta activa?
Vence a las 8 h (
SESSION_MAX_MINUTES) y se cierra tras 1 h sin uso (SESSION_IDLE_MINUTES) o si la cuenta está desactivada. Un token a medias solo pasa en las rutas del segundo paso. - NavegadorBorra el token y va al login con aviso
El cliente HTTP solo cierra la sesión ante el código
UNAUTHENTICATED, no ante cualquier 401 (un código MFA incorrecto también es 401 y no debe sacar a nadie). Guarda la página actual en?volver=. - Base de datosAnota el uso del token
Sanctum actualiza
last_used_at; de ahí se mide la hora sin uso. Cada día se borran los tokens vencidos hace más de 24 h. - NavegadorMuestra la pantalla pedida
Con el menú y los botones según los permisos que trae
/auth/me.
La misma comprobación del token ocurre en cada petición mientras la persona usa Trazo: si una respuesta llega con UNAUTHENTICATED, el navegador hace lo del paso 7. Además, por el canal personal de tiempo real, una desactivación o un cierre de sesiones desde otro lugar llega al instante: la pantalla se cierra con aviso sin esperar a la siguiente petición (ver Módulo Auth y Tiempo real).
Qué ve la persona
| Código | HTTP | Cuándo | Mensaje en pantalla |
|---|---|---|---|
UNAUTHENTICATED | 401 | La sesión venció, quedó sin uso 1 h, la cerraron o desactivaron la cuenta | Tu sesión terminó. Inicia sesión de nuevo para continuar. |
NETWORK_ERROR | — | El navegador no pudo conectarse | No pudimos conectarnos. Revisa tu conexión a internet y vuelve a intentarlo. |
SERVER_UNREACHABLE | 502 / 504 | Respondió el gateway, no la API | El servidor de Trazo no está respondiendo en este momento. Vuelve a intentarlo en unos minutos; si sigue igual, avisa a soporte. |
SERVICE_UNAVAILABLE | 503 | Trazo está en mantenimiento | Trazo está en mantenimiento. Vuelve a intentarlo en unos minutos. |
En la pantalla sin conexión se lee además “Tu sesión sigue abierta: al reintentar vuelves a donde estabas.”
Dónde está en el código
AuthServiceProvider: la regla de cada token (authenticateAccessTokensUsing).SanctumSessionTokensyconfig/sanctum.php: emisión y vencimiento; limpieza diaria enroutes/console.php.authGuardyuseSessionStore(restore): comprobación al navegar.apiError.ts: códigos del navegador para red, gateway y mantenimiento.ConnectionErrorPage: la pantalla con “Reintentar”.