Saltar al contenido principal

Autenticación de la API de plataforma (JWT)

La API REST de vitalera utiliza autenticación JWT (JSON Web Token) basada en el estándar OAuth 2.0.

Obtención de credenciales​

Contacte con [email protected] para solicitar:

  • Client ID — identifica su aplicación
  • Client Secret — autentica su aplicación
  • Application ID — utilizado para la rotación de credenciales

Client Credentials Grant​

Para integraciones servidor a servidor (máquina a máquina):

curl -X POST "https://api.vitalera.io/api/auth/tokens/" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "<CLIENT_ID>",
"client_secret": "<CLIENT_SECRET>"
}'

Respuesta:

{
"access_token": "<ACCESS_TOKEN>",
"token_type": "Bearer",
"expires_in": 3600
}

Password Grant​

Para flujos de inicio de sesión de usuario (p. ej., apps móviles o web que autentican usuarios individuales):

curl -X POST "https://api.vitalera.io/api/auth/tokens/" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "password",
"username": "<USERNAME>",
"password": "<PASSWORD>"
}'

Respuesta:

{
"id_token": "<ID_TOKEN>",
"access_token": "<ACCESS_TOKEN>",
"refresh_token": "<REFRESH_TOKEN>",
"sub": "<USER_ID>"
}

Realizando peticiones a la API​

Incluya el token de acceso en la cabecera Authorization de cada petición:

curl -X GET "https://api.vitalera.io/api/plans/" \
-H "Authorization: Bearer <ACCESS_TOKEN>"

Validez del token​

Los tokens de acceso son válidos durante 1 hora (3600 segundos). Cuando un token expira, la API devuelve HTTP 401 Unauthorized:

{
"errors": [
{
"errorType": "expired_token",
"message": "Access token expired"
}
]
}

Refresco de token​

Si obtuvo un refresh token (mediante password grant), puede refrescar su token de acceso sin volver a autenticarse:

curl -X POST "https://api.vitalera.io/api/auth/tokens/refresh/" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-d '{
"refresh_token": "<REFRESH_TOKEN>"
}'

Validación de token​

Verifique que un token sigue siendo válido:

curl -X GET "https://api.vitalera.io/api/auth/tokens/validate/" \
-H "Authorization: Bearer <ACCESS_TOKEN>"

Rotación de credenciales​

Por seguridad, rote periódicamente sus credenciales de cliente. Esto requiere un JWT válido y el application_id:

curl -X POST "https://api.vitalera.io/api/applications/rotate_credentials/" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"application_id": "<APPLICATION_ID>"
}'

Respuesta:

{
"id": "<APPLICATION_ID>",
"name": "TestApp",
"organization": "123",
"client_id": "<NEW_CLIENT_ID>",
"client_secret": "<NEW_CLIENT_SECRET>",
"application_types": ["API"]
}

Después de la rotación, las credenciales anteriores se invalidan inmediatamente.


¿Necesita ayuda?​

Contacte con [email protected] para asistencia con la configuración de autenticación.