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 support@vitalera.io 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 support@vitalera.io para asistencia con la configuración de autenticación.