← 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