Authorization/Login
URI: /account/login/
Метод використовується на початку зміни для авторизації за логіном і паролем від Skarb Cloud. Параметри відповіді залежать від налаштувань двофакторної автентифікації (2FA).
Запит виконується методом POST з тілом запиту у json форматі.
Заголовки
Запит обов'язково повинен мати заголовок Content-Type: application/json, інакше запит буде вважатися некоректним навіть при валідному JSON у ньому.
Для підтвердження запиту користувача API необхідно передавати заголовок API-Key.
Використовуйте отриманий token у заголовку Authorization для всіх наступних запитів до API після завершення 2FA:
Authorization = "Bearer abc123..."
Поле expires_in вказує термін дії токена в секундах. Відстежуйте його, щоб вчасно оновити сесію або пройти відновлення через eHealth.
На етапі очікування 2FA /account/login/ повертає короткоживучий token (зазвичай expires_in: 2 с). pre_auth_token дійсний лише 5 хвилин. Якщо час вичерпано, повторіть логін
Параметри запиту
| Ім'я | Тип | Обов'язковий | Опис |
|---|---|---|---|
| string | Так | Електронна пошта співробітника (логін для авторизації в Skarb Cloud) | |
| password | string | Так | Пароль співробітника для авторизації в Skarb Cloud |
Приклад запиту
{
"password": "secret"
}
Параметри відповіді
| Ім'я | Тип | Опис |
|---|---|---|
| data | object | Дані авторизації |
| data.token | string | Токен користувача для авторизації. При 2FA — короткоживучий (2 секунди), продовжується після підтвердження |
| data.expires_in | integer | Термін дії токена в секундах |
| data.url | string | Посилання для авторизації в eHealth (без 2FA) |
| data.pre_auth_token | string | Токен для підтвердження 2FA (передається в /account/verify-2fa/ або /account/verify-2fa-by-sign/) |
| data.qr_code_url | string | Посилання для авторизації в eHealth *(для 2FA тільки перший вхід) |
| data.qr_code_base64 | string | Токен користувача для авторизації *(для 2FA тільки перший вхід) |
Приклад успішних відповідей
2FA перший вхід
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"expires_in": 2,
"pre_auth_token": "xyz789...",
"qr_code_base64": "iVBORw0KGgoAAA..."
}
}
2FA Регулярний вхід (автентифікатор уже налаштовано)
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"expires_in": 2,
"pre_auth_token": "xyz789..."
}
}
Приклади неуспішних відповідей
Некоректний email
422 Unprocessable Entity (WebDAV) (RFC 4918)
{
"errors": {
"email": "not found"
}
}
Невірний пароль
422 Unprocessable Entity (WebDAV) (RFC 4918)
{
"errors": {
"password": "is not correct"
}
}
Помилка ліцензії
422 Unprocessable Entity (WebDAV) (RFC 4918)
{
"errors": {
"license": "employee fired or not active"
}
}
Обробка помилок
| HTTP статус | Текст помилки | Причина виникнення |
|---|---|---|
| 422 | Токен недійсний або прострочений | pre_auth_token прострочений або некоректний |
| 422 | Невірний код підтвердження | Введено неправильний OTP-код з додатка |
| 422 | Код підтвердження має містити 6 цифр | Некоректний формат OTP-коду (не 6 знаків) |
| 422 | Перевищено кількість спроб підтвердження 2FA | Забагато невдалих спроб введення коду для одного pre_auth_token |
| 422 | Помилка конфігурації 2FA | Помилка налаштування 2FA на стороні сервера |
| 422 | email: Користувач не знайдений в базі | Користувача з таким Email не існує |
| 422 | password: Невірний пароль | Вказано неправильний пароль |
| 403 | Помилка авторизації некоректний заголовок API-Key | Відсутній або неправильний заголовок API-Key |