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

Авторизація через віджет

Цей сценарій потрібен, якщо потрібно провести авторизацію 2FA через КЕП використовуючі віджет або браузер.

Послідовність дій

  1. Виконайте /account/login/ — у відповіді ви отримаєте тимчасовий неактивований token (дійсний 2 cекунди). Потребує підтвердження другого фактора.

  2. Викличте метод /medication/get-reject-reasons (або будь-який захищений метод API) передавши неактивований token у заголовку Authorization: Bearer.

  3. У відповіді Системи 403 поле eHealthOAuthUrl міститиме адресу сторінки входу. Перейдіть за нею у браузері або віджеті та вкажіть необхідні дані (КЕП / 2FA).

  4. Завершіть авторизацію: після успішного входу закрийте вікно.

  5. Використовуйте токен: той самий token, що раніше повертав помилку, автоматично стає активним — передавайте його в заголовку Authorization: Bearer для всіх подальших запитів до API. Новий токен отримувати не потрібно.

Увага!

Поле eHealthOAuthUrl не веде в eHealth. Це адреса сторінки входу в додаток (наприклад, https://<хост-додатка>/account).

Альтернатива

Якщо потрібна повна інтеграція 2FA через API — використовуйте цикл: /account/login//account/verify-2fa/ або /account/verify-2fa-by-sign/.

Приклад отримання посилання для авторизації

Крок 1. Виконайте метод /account/login/

Заголовки

POST /api/v2/account/login
API-Key: <ваш API-ключ>
Content-Type: application/json

Тіло запиту

{
"email": "[email protected]",
"password": "ваш_пароль"
}

Якщо для облікового запису увімкнено API-2FA, у відповіді прийде неактивований token із коротким терміном дії 2 секунди та повідомлення про необхідність підтвердити другий фактор дочекайтеся закінчення терміну дії токена:

{
"data": {
"pre_auth_token": "xyz789...",
"token": "abc123...",
"expires_in": 2,
"message": "Потрібне підтвердження другого фактора: ..."
}
}
інформація

Отриманий token (наприклад, abc123...) на даному етапі є неактивним і не має доступу до даних

Крок 2. Отримання посилання на 2FA-авторизацію

Викличте метод /medication/get-reject-reasons (або будь-який захищений метод API) передавши отриманий token у заголовку Authorization: Bearer

GET /api/v2/medication/get-reject-reasons
API-Key: <ваш API-ключ>
Authorization: Bearer abc123...

Оскільки токен ще не підтверджено, система поверне помилку 403 Forbidden з посиланням на сторінку підтвердження.

Параметри відповіді
Ім'яТипОпис
errorsobjectДані про помилку авторизації
errors.messagestringПовідомлення про помилку авторизації
errors.eHealthstringПовідомлення про помилку авторизації
errors.eHealthOAuthUrlstringАдреса сторінки проходження 2FA. Перейдіть за цим URL в браузері або віджеті
Приклад відповіді

403 Forbidden

Прострочений токен: посилання на сторінку входу
{
"errors": {
"eHealth": "Закінчився термін дії токену",
"eHealthOAuthUrl": "https://<хост-додатка>/account",
"message": "Закінчився термін дії токену"
}
}

Крок 3. Проходження авторизації користувачем

  1. Відкрийте URL з поля eHealthOAuthUrl у браузері або віджеті.

  2. Виконайте вхід (наприклад, за допомогою КЕП / 2FA).

  3. Після успішного входу закрийте вікно.

Крок 4. Використання активованого token

Після успішного входу на сторінці той самий token (abc123...), який повертав помилку, автоматично стає активованим.

Отримувати новий token через /account/login не потрібно. Повторіть потрібний запит до API з тим самим токеном:

GET /api/v2/medication/get-reject-reasons
API-Key: <ваш API-ключ>
Authorization: Bearer abc123...

Запит поверне успішний результат 200 OK.