Configurar PIN de seguridad
Endpoint: POST /auth/pin/configure
Permite configurar un PIN de seguridad de 6 dígitos para el usuario autenticado. Puede usarse tanto para configurar el PIN por primera vez como para actualizarlo directamente.
🔐 Requiere autenticación JWT
Debes enviar un token JWT válido en el header:
Authorization: Bearer <accessToken>
📝 Cuerpo de la solicitud
{
"pin": "123456"
}
- pin: PIN de exactamente 6 dígitos numéricos
✅ Validaciones
- PIN debe ser exactamente 6 dígitos numéricos
- No se permiten caracteres especiales, letras o espacios
- Patrón válido:
/^\d{6}$/
📋 Respuestas
✅ 200 OK
-
PIN configurado correctamente
{
"code": 1008,
"message": "PIN configured successfully",
"data": {
"pinActive": true,
"configuredAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}
❌ 400 Bad Request
-
PIN inválido (formato incorrecto)
{
"code": 4006,
"message": "PIN must be exactly 6 digits"
} -
Faltan datos
{
"message": "PIN is required."
}
❌ 401 Unauthorized
-
Sin token válido
{
"statusCode": 401,
"message": "Unauthorized"
}
🔒 Características de seguridad
- Hashing seguro: El PIN se almacena usando bcrypt con pepper
- Historial completo: Se mantiene un registro de todas las operaciones
- Auto-migración: Compatible con usuarios existentes sin impacto
- Activación automática: El PIN se activa automáticamente al configurarlo
📝 Notas
- Este endpoint puede usarse tanto para configuración inicial como para actualización directa
- Para mayor seguridad en actualizaciones, considera usar el flujo de
/auth/pin/update/requestseguido de/auth/pin/update - El PIN se activará automáticamente después de la configuración exitosa
- Se integra automáticamente con el sistema JWT Guard para verificación en endpoints protegidos
Importante: Una vez configurado, el PIN será requerido para acceder a operaciones sensibles en la aplicación.