Login
El endpoint de login intercambia un nombre de usuario y contraseña por un token portador con tiempo limitado utilizado por todos los endpoints clínicos.
Petición
- Python
- JavaScript
- cURL
import requests
base_url = "<base_url>" # the base url path provided during registration
url = f"{base_url}/login"
data = {
"username": "<your_email>", # the email you provided during registration
"password": "<your_password>" # the password received in the welcome email
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=data, headers=headers)
result = response.json()
const baseUrl = "<base_url>"; // the base url path provided during registration
const formData = new URLSearchParams();
formData.append("username", "<your_email>");
formData.append("password", "<your_password>");
const response = await fetch(`${baseUrl}/login`, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: formData.toString(),
});
const result = await response.json();
curl -X POST "<base_url>/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=<your_email>&password=<your_password>"
Respuesta
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Access token",
"expires_in_minutes": "60"
}
Campo por campo
access_tokenel token portador a incluir en cada endpoint protegido comoAuthorization: Bearer <access_token>.token_typeetiqueta descriptiva, actualmente siempre"Access token".expires_in_minutesduración del token. Después de estos minutos, el token se vuelve inválido y debe llamarse a/loginde nuevo para obtener uno nuevo.
Expiración del token
Almacenar en caché el token durante la duración de expires_in_minutes y reaplicar /login de forma proactiva antes de que expire. Si un endpoint clínico devuelve un error de autenticación o autorización, tratarlo como expiración del token e intentar de nuevo después de un nuevo login.