POST/api/auth/login
Inicia sesión de un usuario y emite un Session JWT y un Refresh Token. Es la única vía para obtener un token de acceso válido al dashboard; no existe un sistema separado de Developer API Keys.
Autenticación y seguridad
No se requiere autenticación
Limitación progresiva de fuerza bruta por correo electrónico/nombre de usuario (authGuard) -- 10 intentos fallidos en 5 minutos provocan un retraso creciente; a partir de 30, se aplica un bloqueo.
Idempotente: No
Parámetros
identifier(body, string, obligatorio)— Dirección de correo electrónico o nombre de usuariopassword(body, string, obligatorio)— ContraseñaSolicitud de ejemplo
{"identifier":"user@example.com","password":"SuContraseña"}Respuesta de ejemplo
{"ok":true,"token":"<JWT, válido 12h>","refreshToken":"<Refresh-Token, válido 7 días, de un solo uso>","user":{"id":"...","tenant_id":"...","email":"user@example.com","role":"EMPLOYEE","roles":[],"permissions":[],"isMasterAdmin":false}}Códigos de error
401 INVALID_CREDENTIALS — El correo electrónico/nombre de usuario o la contraseña son incorrectos.429 RATE_LIMIT_EXCEEDED — Demasiados intentos fallidos para este identificador o esta IP.Evidencia de prueba en vivo
Éxito (200, JWT + Refresh Token reales) y caso negativo (401 con contraseña incorrecta) verificados live contra un stack de prueba aislado.