Authorization API
Группа методов для работы с авторизацией.
Описание методов
Данный блок содержит подробное описание по каждому методу API.
[GET]/api/v2/auth/byCertificate
Аутентификация по сертификату. Шаг 1. Получение данных для подписи.
Основной сценарий Получение access и refresh токенов (токены авторизации) по подписанным данным.
Данным методом необходимо запросить строку, подписать ее прикрепленной (совмещенной) ЭП.
Представляет из себя штамп времени сервера в универсальном сортируемом формате в UTC.
Файл ЭП отправить в Шаге 2
Возможные ответы метода
Код | Тип | Описание |
---|---|---|
200 | string | Данные для подписи. |
[POST]/api/v2/auth/byCertificate
Аутентификация по сертификату. Шаг 2. Создание access и refresh токенов (токены авторизации) на основе подписанных данных.
Основной сценарий Получение access и refresh токенов по подписанным данным.
В параметре signedData необходимо передать файл прикрепленной (совмещенной) ЭП данных, полученных в Шаге 1. На сервере проверяется ЭП, извлекается сертификат.
Отпечаток (SHA1 Thumbprint) сертификата сравнивается с отпечатками сертификатов, указанных при регистрации.
Тело запроса
Тип запроса: multipart/form-data
Название | Обязат. | Тип | Описание |
---|---|---|---|
signedData | Да | string(binary) |
Возможные ответы метода
Код | Тип | Описание |
---|---|---|
200 | AuthTokenInfo | Access и refresh токены. |
400 | ValidationResultErrorMessage | Bad Request |
Пример успешного ответа
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
[POST]/api/v2/auth/refresh
Обновление токенов авторизации на основе refresh токена.
Основной сценарий Получить access и refresh токены (токены авторизации). Использовать для обновления токенов авторизации не используя сертификат (подписание данных).
Рекомендуется использовать в фоновом режиме до истечения срока действия acсess токена.
Тело запроса
Тип запроса: application/json
Refresh токен. Тип контента: string
Возможные ответы метода
Код | Тип | Описание |
---|---|---|
200 | AuthTokenInfo | Access и refresh токены. |
400 | ValidationResultErrorMessage | Bad Request |
Пример успешного ответа
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
Описание дополнительных моделей
Данный блок содержит описание дополнительных моделей.
AuthTokenInfo
Токены авторизации.
Название | Обязат. | Тип | Описание |
---|---|---|---|
accessToken | Да | string | Авторизационный токен (access токен). |
refreshToken | Да | string | Токен для обновления авторизационного токена (refresh токен). |
validBefore | Да | date-time-offset | Дата и время окончания жизни access токена, на основе которых можно определить его длительность. Длительность действия refresh токена в 2 раза дольше, чем у access токена. |
Пример модели
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
ErrorType
Тип ошибки.
Значение | Описание |
---|---|
Authentication | Ошибка аутентификации. |
Billing | Ошибка биллинга. |
Domain | Ошибка уровня предметной области. |
Employee | Ошибка связанная с сотрудником. |
Import | Ошибка импорта файлов. |
Inner | Внутренняя ошибка. |
Undefinded | Неопределенная ошибка. |
ValidationRule | Ошибка валидации запроса. |
Visualization | Ошибка визуализации. |
ValidationError
Ошибка валидации
Название | Обязат. | Тип | Описание |
---|---|---|---|
name | Нет | string | Имя свойства (аргумента). |
reason | Нет | string | Причина ошибки |
Пример модели
{
"name": "Строка",
"reason": "Строка"
}
ValidationResult
Модель для вывода ошибок валидации.
Название | Обязат. | Тип | Описание |
---|---|---|---|
detail | Нет | string | Детали ошибки валидации. |
validationErrors | Нет | ValidationError[array] | Список ошибок валидации. |
Пример модели
{
"detail": "Строка",
"validationErrors": [
{
"name": "Строка",
"reason": "Строка"
}
]
}
ValidationResultErrorMessage
Параметры модели сообщения об ошибке.
Название | Обязат. | Тип | Описание |
---|---|---|---|
message | Нет | string | Текст ошибки. |
code | Нет | string | Код ошибки. |
type | Нет | Одна из: ErrorType | Тип ошибки. |
data | Нет | Одна из: ValidationResult | Детализация ошибки (опциональная). |
Пример модели
{
"message": "Строка",
"code": "Строка",
"type": "Employee",
"data": {
"detail": "Строка",
"validationErrors": [
{
"name": "Строка",
"reason": "Строка"
}
]
}
}