Skip to main content

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 lastActivity con 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

  1. Sin sesión: El usuario nunca ha verificado PIN o la sesión expiró
  2. Sesión activa: PIN verificado recientemente, acceso completo a operaciones sensibles
  3. 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 remainingTime está 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


Información: Una sesión aprobada permite acceso temporal a operaciones sensibles sin re-verificar el PIN hasta que expire o se revoque.