Авторизация и аутентификация¶
Типы данных¶
Данные сессии¶
Тип данных AuthInfo
Название | Тип | Описание |
---|---|---|
user | string | публичный идентификатор пользователя |
token | string | токен сессии |
created | Date | Дата создания сессии |
ttl | int | Время жизни сессии в минутах |
Запросы¶
Сохранение токена обмена¶
Метод: embedded_storage.save_exchange_token
Запрос отправляется от авторизационного сервера. Детали см. в Инструкции по авторизации.
Параметры запроса
Название | Тип | Описание |
---|---|---|
exchangeToken | string | токен обмена |
authInfo | AuthInfo | данные сессии |
Параметры ответа
Название | Тип | Описание |
---|---|---|
id | string | идентификатор записи во встроенной бд |
Пример запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "embedded_storage.save_exchange_token",
"cred": {
"user": "test_user",
"token": "aa3c472ab7b97797e347ec345cda371663e021c8"
},
"params": {
"exchangeToken": "exchtoken123",
"authInfo": {
"user": "user456",
"token": "token43ge2820",
"ttl": 1440
}
}
}
Пример ответа
{
"jsonrpc": "2.0",
"result": {
"id": "100500"
},
"id": "1"
}
Возможные типы ошибок
Название | Значение | Когда происходит |
---|---|---|
Аутентификация¶
Метод: embedded_storage.authenticate
Запрос отправляется от клиентского приложения после выполнения обмена токенами. Детали см. в Инструкции по авторизации.
Ограничение — только одно выполнение запроса с одним токеном обмена.
Параметры запроса
Название | Тип | Описание |
---|---|---|
exchangeToken | string | токен обмена |
patientProperties | PatientInputProperties | данные клиента для сопоставления |
searchStrategy | string | стратегия поиска пациента |
medCardId | string | номер мед. карты |
Параметры ответа
Название | Тип | Описание |
---|---|---|
patient | Patient | данные пользователя |
userSign | string | подпись пользователя |
patientAlreadyMatched | boolean | был ли пользователь уже сопоставлен с пациентом до вызова этого запроса |
Пример запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "embedded_storage.authenticate",
"params": {
"searchStrategy": "PHONE",
"exchangeToken": "exchtoken123",
"patientProperties": {
"name": "Alisa",
"surname": "Johnson",
"date": "2010-01-01 00:00:00.000",
"gender": 2,
"phone": "2222222222"
}
}
}
Пример ответа
{
"jsonrpc": "2.0",
"result": {
"patient": {
"id": "2",
"active": false,
"surname": "Johnson",
"middleName": null,
"name": "Alisa",
"phones": [
"2222222222"
],
"email": "[email protected]",
"gender": 2,
"birthdate": "2010-01-01T00:00:00",
"deceased": false,
"maritalStatus": 0,
"photo": "",
"familyMembers": [],
"address": "Address",
"medcardNumber": "321",
"insurances": null,
"history": null
},
"userSign": "1VLXG3VyJHzxSbbM4GY0rHy2ZqaUKRE3L6iabOufZ5OSROnD9WOEYx52oM77nUBWhvU7l8mJPYCu5fp486ZatcDhGEx8HVIQwZ6jrFTX1SpKY2pg9YngP9LeAty5GtXU22BwdG1VI4sgq8P8wuWqKTta8ZEwgHqho0otyrRkHnyUGITKw9nh06lgIJdv7igjvlkHfHhQuHPPdt9rxJuzq5oSHmjKC36nseaGwfZCEiczoKeAx0axwR8CkASDGCVE9Fur9flhtNP5LJynyXyM58Zn2YsVzSRhDXWUD4l6YtbJmgMQoP40wu6GbngySTTKDrudlPKfzx2rQ00BDAf6g7KrE04AsNAKFhwgDFYR7QMnUgambUb4F7acoBTbv3J9PmjdnslmdleCBlwSl8qyaMI5WOITuTLc8eaC95Hyapujsals0UpbU1t6qNjuaTBO9aOUKdDBixEErd464qCD4mR58uONEqKf3SLQVx7DriFQr8PngYLJisRG50rAvAvm",
"patientAlreadyMatched": false
},
"id": "1"
}
Возможные типы ошибок
Название | Значение | Когда происходит |
---|---|---|
AccessForbidden | -33403 | токен обмена не найден |
PatientNotFound | -34002 | Внутренняя ошибка (ссылочная целостность внутри таблицы соответствия пользователей нарушена) |
PatientNotAuthenticated | -34001 | пользователь на сопоставлен |
SaveAuthInfoError | -34003 | Внутренняя ошибка сохранения данных сессии |
Закрыть доступ к ЭМК¶
Метод: embedded_storage.remove_authentication
Запрос отправляется от клиентского приложения. Детали см. в Инструкции "Выход и отключение ЭМК".
Параметры запроса
Отсутствуют
Параметры ответа
Отсутствуют
Пример запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "embedded_storage.remove_authentication",
"cred": {
"user": "556af17b2507b0c50de4fa2e",
"token": "17a3b6c735d71b15686f4598cd7d030220755498"
},
"params": {}
}
Пример ответа
{
"jsonrpc": "2.0",
"result": {},
"id": "1"
}
Возможные типы ошибок
Название | Значение | Когда происходит |
---|---|---|
Сохранение сессии на стороне ЭМК¶
Метод: embedded_storage.save_auth_info
Запрос отправляется от авторизационного сервера. Детали см. в Инструкции по авторизации.
Параметры запроса
Название | Тип | Описание |
---|---|---|
authInfo | AuthInfo | данные сессии |
Параметры ответа
Название | Тип | Описание |
---|---|---|
id | string | идентификатор записи во встроенной бд |
Пример запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "embedded_storage.save_auth_info",
"cred": {
"user": "test_user",
"token": "33b22ccec875594119f1f3c2446d822961b00170"
},
"params": {
"authInfo": {
"user": "user123",
"token": "token456",
"ttl": 1440
}
}
}
Пример ответа
{
"jsonrpc": "2.0",
"result": {
"id": "100500"
},
"id": "1"
}
Возможные типы ошибок
Название | Значение | Когда происходит |
---|---|---|
UserNotFound | -34007 | пользователь по публичному идентификатору не найден в таблице соответствия |
SaveAuthInfoError | -34003 | Внутренняя ошибка сохранения данных сессии |
Удаление сессии на стороне ЭМК¶
Метод: embedded_storage.remove_auth_info
Запрос отправляется от клиентского приложения. Детали см. в Инструкции "Выход и отключение ЭМК".
Параметры запроса
Отсутствуют
Параметры ответа
Отсутствуют
Пример запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "embedded_storage.remove_auth_info",
"cred": {
"user": "556af17b2507b0c50de4fa2e",
"token": "17a3b6c735d71b15686f4598cd7d030220755498"
},
"params": {}
}
Пример ответа
{
"jsonrpc": "2.0",
"result": {},
"id": "1"
}
Возможные типы ошибок
Название | Значение | Когда происходит |
---|---|---|