Saltar al contenido principal

Autenticación

La API usa JWT con dos tokens complementarios: access token y refresh token. El access dura 15 minutos, es stateless y viaja en Authorization: Bearer. El refresh dura 7 días, se guarda en base y se rota en cada uso.

Resumen rápido

Usá el access token para autenticar cada request. Cuando expire, renovalo con el refresh token. Si el refresh se reusa, la API revoca todas las sesiones del usuario.

Login

El login inicial crea ambos tokens.

curl -X POST "https://api.fulljaus.com/api/v2/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"seller@fulljaus.com","password":"mi_password"}'

Respuesta exitosa:

{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"refresh_token": "a1b2c3d4...",
"user_id": 821,
"user_name": "seller@fulljaus.com",
"seller_id": 347,
"expires_in": 900
}

Uso del access token

En cada request autenticada, enviá el JWT en el header Authorization.

curl -X GET "https://api.fulljaus.com/api/v2/products" \
-H "Authorization: Bearer <token>"

Eso alcanza para que la API resuelva el seller en contexto.

Refresh token

Cuando el access token expira, usá el refresh para emitir un par nuevo.

curl -X POST "https://api.fulljaus.com/api/v2/auth/refresh" \
-H "Content-Type: application/json" \
-d '{"refresh_token":"a1b2c3d4..."}'

La rotación es obligatoria:

  1. Validá el refresh token actual.
  2. Revocá ese token con reason rotated.
  3. Generá un nuevo access token.
  4. Generá un nuevo refresh token.
  5. Reemplazá ambos tokens en tu storage.

Si la API detecta reuso de un refresh revocado, revoca todos los refresh tokens del usuario con reason security_breach_token_reuse y fuerza nueva autenticación.

Cierre de sesión

POST /auth/logout revoca el refresh de la sesión actual. El access token vigente sigue funcionando hasta expirar.

POST /auth/revoke-all cierra todas las sesiones del usuario.

curl -X POST "https://api.fulljaus.com/api/v2/auth/logout" \
-H "Authorization: Bearer <token>"
curl -X POST "https://api.fulljaus.com/api/v2/auth/revoke-all" \
-H "Authorization: Bearer <token>"

Errores comunes

CasoCódigoQué significa
Credenciales inválidas401Usuario o password incorrecto
Usuario inactivo403El usuario está deshabilitado
Refresh inválido o expirado401Reintentá con login
Error de validación400Faltan campos requeridos
Error interno500Falló la operación en backend
Servicio temporalmente no disponible503Reintentá más tarde

Ver también Errores para el formato de respuesta y Rate limits para los 429.

Rate limits del login

El login tiene rate limit progresivo por usuario e IP. Si repetís fallos, la API aumenta el cooldown. Ver Rate limits para las reglas exactas.

nota

Los endpoints /auth/* todavía no están incluidos en el API Reference autogenerado.