Skip to Content

Описание

Авторизация и аутентификация в системе реализованы на основе JWT (JSON Web Token).

Токен генерируется и подписывается секретным ключом в сервисе Api.Auth при авторизации и обновлении токена. Задача клиента при взаимодействии с API — получать актуальный токен и передавать его в заголовке Authorization при каждом запросе.

Пример:

POST /inference/smartOcr HTTP/1.1 Host: ai-server-endpoint:44392 modelType: anytext Accept: text/plain Authorization: Bearer ВАШ_ТОКЕН Content-Length: 220 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="/C:/doc.jpg" Content-Type: image/jpeg (data) ------WebKitFormBoundary7MA4YWxkTrZu0gW--

Цикл жизни токена

По умолчанию токен выдается на 12 часов. Этот параметр настраивается в конфигурации сервиса Api.Auth:

"Security": { "Jwt": { ... "SessionLifetimeMin": 720 ... }, ... }

Клиент самостоятельно контролирует срок действия токена.

Если срок жизни токена подходит к завершению, необходимо обновить токен.

Если токен уже истёк и сервис возвращает ошибку 401 Unauthorized, требуется повторно выполнить авторизацию.

Авторизация

Авторизация выполняется методом POST /auth/Account.

В теле запроса в формате JSON передаются логин и пароль:

POST /auth/Account HTTP/1.1 Host: ai-server-endpoint:44392 Content-Type: application/json Content-Length: 52 { "userName": "admin", "password": "Qwe123!@#" }

В ответ возвращается JSON с токеном в поле token:

{ "token": "ВАШ_ТОКЕН", "fullName": "Admin", "permissions": ["1","2","3"], "tenantId": "", "tenantName": null, "crossTenant": false, "isAdmin": true }

Полученный токен необходимо передавать в заголовке: Authorization: Bearer ВАШ_ТОКЕН.

Обновление токена

Обновление токена выполняется методом POST /auth/Account/RefreshToken.

Текущий токен передается в заголовке Authorization:

POST /auth/Account/RefreshToken HTTP/1.1 Host: ai-server-endpoint:44392 Content-Type: application/json Authorization: Bearer ТЕКУЩИЙ_ТОКЕН Content-Length: 25

В ответ возвращается структура, аналогичная методу авторизации.

Что дальше

Отправляйте запрос Умного OCR.