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

Authorization/Verify-2fa

URI: /account/verify-2fa/

Метод завершує вхід при увімкненій двофакторній автентифікації (2FA). Використовуйте його після успішного /account/login/ для передачі pre_auth_token та 6-значного коду з додатка-автентифікатора.

Запит виконується методом POST з тілом запиту у форматі JSON.

Детальніше про загальні вимоги до запитів — у розділі Формат запитів до API.

Заголовки

Запит обов'язково повинен мати заголовок Content-Type: application/json, інакше запит буде вважатися некоректним навіть при валідному JSON у ньому.

Для підтвердження запиту користувача API необхідно передавати заголовок API-Key (той самий ключ, що й для /account/login/).

попередження

На цьому кроці не передавайте заголовок Authorization з постійним токеном. Після login використовуйте лише pre_auth_token у тілі запиту. Постійний token ви отримаєте лише в успішній відповіді цього методу

інформація

Параметр pre_auth_token отримується методом /account/login/ після успішної перевірки email і пароля

попередження

Тимчасовий pre_auth_token дійсний лише 5 хвилин. Якщо час вичерпано, повторіть /account/login/

Перший вхід (додаток автентифікації ще не налаштовано)

Якщо двофакторну автентифікацію увімкнено, але додаток-автентифікатор ще не налаштовано (або QR-код був отриманий раніше, але так і не був успішно підтверджений), /account/login/ повертає pre_auth_token, qr_code_url та qr_code_base64 для налаштування TOTP-додатка.

інформація

Якщо ви отримали QR-код під час попередньої спроби входу, але не відсканували його, система згенерує новий QR-код при наступній спробі. Просто відскануйте новий код і завершіть перевірку.

  1. Виконайте POST /account/login/ і отримайте pre_auth_token та дані QR-коду.
  2. Відкрийте Google Authenticator, Microsoft Authenticator, Authy або інший TOTP-додаток.
  3. Натисніть +Сканувати QR-код і відскануйте зображення з qr_code_base64.
  4. Надішліть POST /account/verify-2fa/ з pre_auth_token та поточним 6-значним кодом із додатка.

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

Якщо автентифікатор уже налаштовано, /account/login/ повертає лише pre_auth_token. Відкрийте додаток-автентифікатор, знайдіть поточний 6-значний код для SkarbCloud і надішліть POST /account/verify-2fa/ з pre_auth_token та цим кодом.

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

Ім'яТипОбов'язковийОпис
pre_auth_tokenstringТакТимчасовий токен попередньої авторизації, отриманий після успішного /account/login/
codestringТак6-значний OTP-код з додатка-автентифікатора (без пробілів, передавайте як рядок, наприклад "012345")

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

Запит: /account/verify-2fa/
{
"pre_auth_token": "xyz789...",
"code": "123456"
}

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

Ім'яТипОпис
dataobjectДані авторизації
data.tokenstringПостійний токен користувача для подальших запитів до API
data.urlstringПосилання для авторизації в eHealth (якщо потрібно для вашого сценарію)

Приклад успішної відповіді

200 OK

Успішна відповідь: /account/verify-2fa/
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"url": "https://..."
}
}

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

У разі помилки API повертає об'єкт errors. Текст помилки зазвичай відповідає таблиці нижче ключ у errors може бути message, code, pre_auth_token.

Прострочений або некоректний pre_auth_token

422 Unprocessable Entity

Неуспішна відповідь: /account/verify-2fa/
{
"errors": {
"message": "Токен недійсний або прострочений"
}
}

Що робити: повторіть POST /account/login/, отримайте новий pre_auth_token і надішліть verify знову протягом 5 хвилин.

Невірний OTP-код

422 Unprocessable Entity

Неуспішна відповідь: /account/verify-2fa/
{
"errors": {
"message": "Невірний код підтвердження"
}
}

Що робити: візьміть поточний 6-значний код з додатка (коди оновлюються кожні ~30 с), і повторіть запит з тим самим pre_auth_token (поки не вичерпано ліміт спроб).

Некоректний формат code

422 Unprocessable Entity

Неуспішна відповідь: /account/verify-2fa/
{
"errors": {
"message": "Код підтвердження має містити 6 цифр"
}
}

Перевищено кількість спроб

422 Unprocessable Entity

Неуспішна відповідь: /account/verify-2fa/
{
"errors": {
"message": "Перевищено кількість спроб підтвердження 2FA"
}
}

Що робити: знову виконайте /account/login/ для нового pre_auth_token.

Некоректний API-Key

403 Forbidden

Неуспішна відповідь: /account/verify-2fa/
{
"errors": {
"message": "Помилка авторизації некоректний заголовок API-Key"
}
}

Що робити: перевірте наявність і значення заголовка API-Key (без заголовка Authorization на цьому кроці).