← Volver al índice de esquemas

UserSession

Representa una sesión JWT activa (o histórica) del usuario autenticado. Una sesión equivale a un par cookie/JWT minted en login, 2FA verify o el re-issue de password-change; cada sesión queda anclada a un `jti` embebido en el JWT y registrada en `user_sessions` con su IP/UA y ventana de vida. Surface user-facing introducida en v1.49.5 (ADR-0089).

Propiedades

Campo Tipo Descripción
id * string (uuid) Identificador único de la sesión (UUID v7 time-ordered). Es el valor que el usuario referencia en `DELETE /v1/users/me/sessions/{id}`.
is_current * boolean `true` cuando esta sesión corresponde a la solicitud actual (el `jti` del JWT de la cookie coincide). Permite a la UI marcar "esta sesión" sin un round-trip adicional.
ip * string | null Dirección IP desde la que se acuñó la sesión. `null` cuando el `REMOTE_ADDR` no estaba disponible al iniciar sesión (proxy mal configurado, headless test, etc.).
user_agent * string | null Cabecera `User-Agent` capturada al acuñar la sesión. `null` cuando el cliente no envió la cabecera. La UI la parsea para mostrar un "browser · OS" legible.
created_at * string (date-time) Marca temporal UTC de creación de la sesión (ISO 8601). Equivale al momento del login / 2FA verify / password-change re-issue que la acuñó.
last_used_at * string (date-time) Marca temporal UTC de la última solicitud autenticada que utilizó esta sesión (best-effort UPDATE en cada hit de AuthMiddleware). Usada para ordenar la lista por uso reciente.
expires_at * string (date-time) Marca temporal UTC en la que la sesión expira automáticamente (`created_at + jwt.expiration`). Después de esa fecha AuthMiddleware rechaza el JWT con `session_expired` aunque la firma siga válida.

Usado en operaciones

  • GET /v1/users/me/sessions

Referenciado por esquemas