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

Отримання Token для доступу до API ​

Цей документ описує процес отримання токена авторизації (Token), необхідного для доступу до API платформи.

ЗМІСТ

Крок 1. Авторизація ​

Client credentials flow: ​

Отримання Token для доступу до API — 1

Виконайте POST-запит на адресу https://id.medakadem.com/connect/token:

POST /connect/token HTTP/1.1
Host: id.medakadem.com
Content-Type: application/x-www-form-urlencoded

client_id=<client_id_value>&client_secret=<client_secret_here>&grant_type=client_credentials&scope=gambit%3Astatic_data

Отримання Token для доступу до API — 2

ПараметрЗначекнняОпис
grant_typeclient_credentialsнезмінне значення
client_idідентифікатор клієнтадля отримання зверністся на підтримку
client_secretсекретний параметрл клієнтадля отримання зверністся на підтримку
scopeперелік необхідних скоупів

Patient flow ​

Отримання Token для доступу до API — 3

для певних АПІ, таких як:

  • GET api/online/v1/patient/prerecords
  • GET api/online/v1/patient/prerecords/{patientId:int}
  • GET api/online/v1/patient/prerecords/countPlanned
  • GET api/online/v1/patient/prerecords/by/id/{id}
  • DELETE api/online/v1/patient/prerecords/{prerecordId}
  • POST api/online/v1/patient/prerecords
  • api/online/v1/patient/identity/*
  • GET api/online/v1/patient/history
  • GET api/online/v1/patient/history/analysisFiles/{analysisId:int}
  • GET api/online/v1/patient/history/print/analysis/{analysisId:int}
  • GET api/online/v1/patient/history/ print/protocol/{protocolId:int}
  • GET api/online/v1/patient/protocols/{id}/information
  • GET api/online/v1/patient/analysis/{id}/information
  • api/online/v1/patientFamily/*

необхідно використовувати токен іншого типу, токен який видається для кожного пацієнта індивідуально, використовуючи OTP код авторизаціх.

​

для цього потрібно: ​

  • виконати запит на ресурс: POST api/online/v2/patient/identity/initialize-otp-login
curl --location 'https://<clinica-web-customer>.medakadem.com.ua/api/online/v2/patient/identity/initialize-otp-login' \
--header 'Authorization: Bearer <token_here>' \
--header 'Content-Type: application/json' \
--data '{
    "Phone": "0000000000"
}'
  • При успішному виконанні -пацієнту надійде 4х чифровий OTP код (термін дії якого обмежений)

  • Виконати запит на отримання токену - POST https://id.medakadem.com/connect/token

    curl --location 'https://id.medakadem.com/connect/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --header 'Authorization: ••••••' \
    --data-urlencode 'grant_type=patient' \
    --data-urlencode 'client_id=••••••'' \
    --data-urlencode 'client_secret=••••••'' \
    --data-urlencode 'scope=gambit:online gambit:static_data patient_profile offline_access gambit:patient:profile' \
    --data-urlencode 'client_name=<client_name>' \
    --data-urlencode 'phone=0000000000' \
    --data-urlencode 'otp=0000'

    Отримання Token для доступу до API — 4

ПараметрЗначекнняОпис
grant_typepatientнезмінне значення
client_idідентифікатор клієнтадля отримання зверністся на підтримку
client_secretсекретний параметрл клієнтадля отримання зверністся на підтримку
scopeперелік необхідних скоупівgambit:online gambit:static_data patient_profile offline_access gambit:patient:profile (мінімально необхідний перелік для роботи, за необхідністю його можна розширити).
client_nameназва клієнтаможна отримати в підтримки
phoneтелефон пацієнтабез розділових знаків чи пробілів
otpодноразовий код авторизації пацієнта(буде надісланий після виклику методу в попередньому кроці)

при успішній відповіді ви отримаєте:

{
    "access_token": "<accesss_token value>",
    "expires_in": 3600,
    "token_type": "Bearer",
    "refresh_token": "<refresh token value>",
    "scope": "gambit:online gambit:patient:profile gambit:static_data offline_access patient_profile"
}

Крок 2. Отримання відповіді ​

Після успішної авторизації сервер поверне відповідь, яка міститиме токен у полі access_token:

{
    "access_token": "access_token_here",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "gambit:static_data"
}
ПараметрТипОпис
access_tokenstringtoken доступу
expires_innumberТривалість життя токену в секундах
token_typestringBearer
scopestringСписок scopes

Використовуйте значення поля access_tokenдля авторизації ваших подальших запитів до API.

Використання Token ​

Для доступу до захищених ресурсів API включайте токен у заголовок запиту таким чином:

Authorization: Bearer access_token_value