Ir al contenido

Autenticación

Todos los endpoints de autenticación tienen el prefijo /api/v1/auth/. Usa la cabecera Authorization: Bearer <token> para las solicitudes autenticadas.

MétodoRutaDescripciónAuth
GET/v1/healthComprobación de estado (pública)No
POST/v1/auth/registerCrear una cuenta nuevaNo
POST/v1/auth/loginAutenticarse y obtener un tokenNo
POST/v1/auth/verifyVerificar la dirección de correo electrónicoNo
POST/v1/auth/forgot-passwordSolicitar un correo de restablecimiento de contraseñaNo
POST/v1/auth/reset-passwordRestablecer la contraseña con un tokenNo
POST/v1/auth/passkey/authenticate-optionsObtener un desafío de inicio de sesión WebAuthnNo
POST/v1/auth/passkey/authenticateCompletar el inicio de sesión WebAuthnNo
POST/v1/auth/logoutRevocar el token actual
POST/v1/auth/logout-allRevocar todos los tokens excepto el actual
POST/v1/auth/refreshEmitir un nuevo token
GET/v1/auth/tokensListar todos los tokens activos
POST/v1/auth/revoke-tokenRevocar un token específico
POST/v1/auth/passkeys/register-optionsObtener un desafío de registro WebAuthn
POST/v1/auth/passkeys/registerRegistrar una nueva clave de acceso
GET/v1/auth/passkeysListar claves de acceso
PUT/v1/auth/passkeys/{passkey}Renombrar una clave de acceso
DELETE/v1/auth/passkeys/{passkey}Eliminar una clave de acceso
POST /v1/auth/register

Cuerpo de la solicitud:

CampoTipoReglas
namestringobligatorio
emailstringobligatorio, correo válido, único
passwordstringobligatorio, mínimo 12 caracteres
password_confirmationstringobligatorio, debe coincidir con password

Límite de tasa: 10 solicitudes por hora por IP.

POST /v1/auth/login

Cuerpo de la solicitud:

CampoTipoReglas
emailstringobligatorio
passwordstringobligatorio

Límite de tasa: 5 solicitudes por minuto por correo/IP.

Respuesta (200):

{
"success": true,
"data": {
"token": "1|abc123...",
"token_type": "Bearer",
"token_expires_at": "2026-06-27T00:00:00Z",
"user": { "id": 1, "name": "...", "email": "..." }
}
}
POST /v1/auth/verify

Cuerpo de la solicitud:

CampoTipoReglas
user_idstringobligatorio
tokenstringobligatorio
POST /v1/auth/forgot-password

Envía un enlace de restablecimiento de contraseña (válido durante 60 minutos). Límite de tasa: 10 solicitudes por hora por IP.

CampoTipoReglas
emailstringobligatorio
platformstringopcional (web/mobile/desktop)
POST /v1/auth/reset-password
CampoTipoReglas
tokenstringobligatorio
emailstringobligatorio
passwordstringobligatorio, mínimo 12 caracteres

Inicio de sesión y gestión de claves de acceso WebAuthn.

MétodoRutaDescripción
POST/v1/auth/passkey/authenticate-optionsObtener un desafío de inicio de sesión
POST/v1/auth/passkey/authenticateCompletar el inicio de sesión
POST/v1/auth/passkeys/register-optionsObtener un desafío de registro
POST/v1/auth/passkeys/registerRegistrar una nueva clave de acceso
GET/v1/auth/passkeysListar claves de acceso
PUT/v1/auth/passkeys/{passkey}Renombrar una clave de acceso (name)
DELETE/v1/auth/passkeys/{passkey}Eliminar una clave de acceso

La autenticación con clave de acceso tiene un límite de tasa de 10 solicitudes por minuto por IP/correo.

GET /v1/health

Comprobación de estado pública. Devuelve status, timestamp, app y version.

POST /v1/auth/logout

Revoca el token usado en la cabecera Authorization.

POST /v1/auth/logout-all

Revoca todos los tokens excepto el que hace la solicitud.

POST /v1/auth/refresh

Devuelve un nuevo token. El token anterior queda revocado.

Respuesta (200):

{
"success": true,
"data": {
"token": "2|def456...",
"token_type": "Bearer",
"token_expires_at": "2026-07-27T00:00:00Z"
}
}
GET /v1/auth/tokens

Devuelve todos los tokens activos del usuario autenticado. Cada token incluye un booleano is_current.

POST /v1/auth/revoke-token

Cuerpo de la solicitud:

CampoTipoReglas
token_idintegerobligatorio