Перейти до основного вмісту

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 хвилин. Якщо час вичерпано, повторіть логін

Параметри запиту

Ім'яТипОбов'язковийОпис
emailstringТакЕлектронна пошта співробітника (логін для авторизації в Skarb Cloud)
passwordstringТакПароль співробітника для авторизації в Skarb Cloud

Приклад запиту

Запит: /account/login/
{
"email": "[email protected]",
"password": "secret"
}

Параметри відповіді

Ім'яТипОпис
dataobjectДані авторизації
data.tokenstringТокен користувача для авторизації. При 2FA — короткоживучий (2 секунди), продовжується після підтвердження
data.expires_inintegerТермін дії токена в секундах
data.urlstringПосилання для авторизації в eHealth (без 2FA)
data.pre_auth_tokenstringТокен для підтвердження 2FA (передається в /account/verify-2fa/ або /account/verify-2fa-by-sign/)
data.qr_code_urlstringПосилання для авторизації в eHealth *(для 2FA тільки перший вхід)
data.qr_code_base64stringТокен користувача для авторизації *(для 2FA тільки перший вхід)

Приклад успішних відповідей

2FA перший вхід

Успішна відповідь: /account/login
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"expires_in": 2,
"pre_auth_token": "xyz789...",
"qr_code_url": "otpauth://totp/SkarbCloud:[email protected]?secret=BASE32SECRET&issuer=SkarbCloud",
"qr_code_base64": "iVBORw0KGgoAAA..."
}
}

2FA Регулярний вхід (автентифікатор уже налаштовано)

Відповідь: /account/login
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"expires_in": 2,
"pre_auth_token": "xyz789..."
}
}

Приклади неуспішних відповідей

Некоректний email

422 Unprocessable Entity (WebDAV) (RFC 4918)

Неуспішна відповідь: /account/login/
{
"errors": {
"email": "not found"
}
}

Невірний пароль

422 Unprocessable Entity (WebDAV) (RFC 4918)

Відповідь: /account/login/
{
"errors": {
"password": "is not correct"
}
}

Помилка ліцензії

422 Unprocessable Entity (WebDAV) (RFC 4918)

Відповідь: /account/login/
{
"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 на стороні сервера
422email: Користувач не знайдений в базіКористувача з таким Email не існує
422password: Невірний парольВказано неправильний пароль
403Помилка авторизації некоректний заголовок API-KeyВідсутній або неправильний заголовок API-Key