Авторизация и аутентификация

Типы данных

Данные сессии

Тип данных 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 данные клиента для сопоставления

Параметры ответа

Название Тип Описание
patient Patient данные пользователя
userSign string подпись пользователя
patientAlreadyMatched boolean был ли пользователь уже сопоставлен с пациентом до вызова этого запроса

Пример запроса

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "embedded_storage.authenticate",
    "params": {
        "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": "alisa@mail.com",
            "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"
}

Возможные типы ошибок

Название Значение Когда происходит