Авторизація через віджет
Цей сценарій потрібен, якщо потрібно провести авторизацію 2FA через КЕП використовуючі віджет або браузер.
Послідовність дій
-
Виконайте /account/login/ — у відповіді ви отримаєте тимчасовий неактивований
token(дійсний 2 cекунди). Потребує підтвердження другого фактора. -
Викличте метод /medication/get-reject-reasons (або будь-який захищений метод API) передавши неактивований
tokenу заголовкуAuthorization: Bearer. -
У відповіді Системи 403 поле
eHealthOAuthUrlміститиме адресу сторінки входу. Перейдіть за нею у браузері або віджеті та вкажіть необхідні дані (КЕП / 2FA). -
Завершіть авторизацію: після успішного входу закрийте вікно.
-
Використовуйте токен: той самий
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
Тіло запиту
{
"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 з посиланням на сторінку підтвердження.
Параметри відповіді
| Ім'я | Тип | Опис |
|---|---|---|
| errors | object | Дані про помилку авторизації |
| errors.message | string | Повідомлення про помилку авторизації |
| errors.eHealth | string | Повідомлення про помилку авторизації |
| errors.eHealthOAuthUrl | string | Адреса сторінки проходження 2FA. Перейдіть за цим URL в браузері або віджеті |
Приклад відповіді
403 Forbidden
{
"errors": {
"eHealth": "Закінчився термін дії токену",
"eHealthOAuthUrl": "https://<хост-додатка>/account",
"message": "Закінчився термін дії токену"
}
}
Крок 3. Проходження авторизації користувачем
-
Відкрийте URL з поля
eHealthOAuthUrlу браузері або віджеті. -
Виконайте вхід (наприклад, за допомогою КЕП / 2FA).
-
Після успішного входу закрийте вікно.
Крок 4. Використання активованого token
Після успішного входу на сторінці той самий token (abc123...), який повертав помилку, автоматично стає активованим.
Отримувати новий token через /account/login не потрібно. Повторіть потрібний запит до API з тим самим токеном:
GET /api/v2/medication/get-reject-reasons
API-Key: <ваш API-ключ>
Authorization: Bearer abc123...
Запит поверне успішний результат 200 OK.