Перейти к основному содержимому

Authorization API

Группа методов для работы с авторизацией.

Описание методов

Данный блок содержит подробное описание по каждому методу API.


[GET]/api/v2/auth/byCertificate

Аутентификация по сертификату. Шаг 1. Получение данных для подписи.

Основной сценарий Получение access и refresh токенов (токены авторизации) по подписанным данным.
Данным методом необходимо запросить строку, подписать ее прикрепленной (совмещенной) ЭП.
Представляет из себя штамп времени сервера в универсальном сортируемом формате в UTC.
Файл ЭП отправить в Шаге 2

Возможные ответы метода

КодТипОписание
200stringДанные для подписи.

[POST]/api/v2/auth/byCertificate

Аутентификация по сертификату. Шаг 2. Создание access и refresh токенов (токены авторизации) на основе подписанных данных.

Основной сценарий Получение access и refresh токенов по подписанным данным.
В параметре signedData необходимо передать файл прикрепленной (совмещенной) ЭП данных, полученных в Шаге 1. На сервере проверяется ЭП, извлекается сертификат.
Отпечаток (SHA1 Thumbprint) сертификата сравнивается с отпечатками сертификатов, указанных при регистрации.

Тело запроса

Тип запроса: multipart/form-data

НазваниеОбязат.ТипОписание
signedDataДаstring(binary)

Возможные ответы метода

КодТипОписание
200AuthTokenInfoAccess и refresh токены.
400ValidationResultErrorMessageBad 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

Возможные ответы метода

КодТипОписание
200AuthTokenInfoAccess и refresh токены.
400ValidationResultErrorMessageBad 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": "Строка"
}
]
}
}