Consultar estado de sesión PIN
Endpoint: GET /auth/pin/session/status
Permite verificar el estado de la sesión aprobada por PIN del usuario autenticado, incluyendo información sobre duración, actividad y expiración.
🔐 Requiere autenticación JWT
Debes enviar un token JWT válido en el header:
Authorization: Bearer <accessToken>
📋 Respuestas
✅ 200 OK
-
Sesión PIN aprobada y activa
{
"code": 1001,
"message": "Session status retrieved successfully",
"data": {
"sessionApproved": true,
"sessionInfo": {
"approvedAt": "2025-01-20T14:45:00.000Z",
"lastActivity": "2025-01-20T14:47:30.000Z",
"expiresAt": "2025-01-21T14:45:00.000Z",
"remainingTime": 86100000
}
}
} -
No hay sesión PIN aprobada
{
"code": 1001,
"message": "Session status retrieved successfully",
"data": {
"sessionApproved": false,
"sessionInfo": null
}
}
❌ 401 Unauthorized
-
Sin token válido
{
"statusCode": 401,
"message": "Unauthorized"
}
📊 Campos de respuesta (cuando sessionApproved = true)
- approvedAt: Fecha y hora cuando se verificó el PIN y se creó la sesión
- lastActivity: Última actividad registrada en la sesión
- expiresAt: Fecha y hora de expiración absoluta de la sesión (24 horas)
- remainingTime: Tiempo restante en milisegundos hasta la expiración
⏱️ Gestión de tiempo de sesión
Duración total
- 24 horas desde la verificación exitosa del PIN
- Expiración absoluta independiente de la actividad
Timeout por inactividad
- 5 minutos sin actividad causan revocación automática
- Se actualiza
lastActivitycon cada operación que requiere PIN
Auto-revocación
- La sesión se revoca automáticamente al expirar
- También se revoca si el PIN se desactiva o cambia
🔄 Estados posibles
- Sin sesión: El usuario nunca ha verificado PIN o la sesión expiró
- Sesión activa: PIN verificado recientemente, acceso completo a operaciones sensibles
- Sesión expirada: La sesión existía pero ya expiró por tiempo o inactividad
📝 Notas
- Este endpoint no requiere verificación PIN, solo consulta el estado
- Útil para verificar si se necesita re-verificar el PIN antes de operaciones sensibles
- El
remainingTimeestá en milisegundos para facilitar cálculos en el frontend - Una sesión activa permite acceso a todos los endpoints protegidos por PIN
💡 Casos de uso
- UI condicional: Mostrar diferentes opciones según el estado de sesión
- Pre-validación: Verificar si se necesita PIN antes de intentar operaciones
- Indicadores de tiempo: Mostrar tiempo restante de sesión al usuario
- Gestión de estado: Mantener sincronizado el estado de la aplicación
🔗 Endpoints relacionados
/auth/pin/verify- Crear nueva sesión aprobada/auth/pin/session/revoke- Revocar sesión actual/auth/pin/session/revoke-all- Revocar todas las sesiones
Información: Una sesión aprobada permite acceso temporal a operaciones sensibles sin re-verificar el PIN hasta que expire o se revoque.