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:
- Validá el refresh token actual.
- Revocá ese token con reason
rotated. - Generá un nuevo access token.
- Generá un nuevo refresh token.
- 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
| Caso | Código | Qué significa |
|---|---|---|
| Credenciales inválidas | 401 | Usuario o password incorrecto |
| Usuario inactivo | 403 | El usuario está deshabilitado |
| Refresh inválido o expirado | 401 | Reintentá con login |
| Error de validación | 400 | Faltan campos requeridos |
| Error interno | 500 | Falló la operación en backend |
| Servicio temporalmente no disponible | 503 | Reintentá 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.
Los endpoints /auth/* todavía no están incluidos en el API Reference autogenerado.