Autenticación
Renovar Token
Renovar el token de acceso usando la cookie del token de renovación.
POST /api/auth/refresh
Renueva el token de acceso usando el token de actualización almacenado en una cookie HTTP-only. El cliente no necesita enviar ningún cuerpo — el token de actualización se lee desde la cookie.
Auth: Pública — la cookie refreshToken autentica la solicitud
Ejemplo
curl -X POST https://api.reten.ai/api/auth/refresh \
-b "refreshToken=eyJhbGciOiJIUzI1NiIs..."// El navegador envía las cookies automáticamente
const response = await fetch("https://api.reten.ai/api/auth/refresh", {
method: "POST",
credentials: "include",
});
const data = await response.json();
const accessToken = data.accessToken;import requests
response = requests.post(
"https://api.reten.ai/api/auth/refresh",
cookies={"refreshToken": "eyJhbGciOiJIUzI1NiIs..."},
)
data = response.json()
access_token = data["accessToken"]Respuesta 201 Created
El mismo cuerpo que el del inicio de sesión, con roles, permissions y tenantIds leídos de nuevo a partir de los roles actuales del usuario:
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"username": "jdoe",
"email": "jdoe@example.com",
"firstName": "Jane",
"lastName": "Doe",
"roles": ["viewer"],
"permissions": [
"project:view",
"user:view",
"activity:view",
"commerce-lifecycle-snapshot:view"
],
"tenantIds": ["660e8400-e29b-41d4-a716-446655440000"]
}
}También se establece una nueva cookie de token de actualización.
Respuestas de Error
| Estado | Descripción |
|---|---|
401 | Token de actualización inválido o expirado |
401 | El usuario está desactivado — User account is deactivated |