Описание
Авторизация и аутентификация в системе производится на основе механизма, использующего 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.