Получение токена. VMS Client API
Авторизация пользователя по логину и паролю.
Если будет превышен лимит сессий, которые пользователь может создавать одновременно, то будет 429 ошибка, и нужно будет удалить лишние сессии.
POST /api/v1/token Headers
Accept
application/json
Body
json
JSON
{
"login": "mylogin@mail.com",
"password": "mypassword",
"session_id": "null|session_id",
"captcha": "9U6yh",
"key": "$2y$10$3gXEas4WVUryBA8GgF37vulJz1UrAo2VaYbWccaxeNYoZ.3UJqHYu"
}
loginrequired
string
Логин пользователя
passwordrequired
string
Пароль пользователя
session_idrequired
string
Идентификатор токена, который приходит при 419 статусе, чтобы можно было удалить эту сессию
captcharequired
string
Капча (см. Получение капчи ). В случае, если капча отключена в системных настройках, то является необязательным
keyrequired
string
Ключ (см. Получение капчи ). В случае, если капча отключена в системных настройках, то является необязательным
Response
200
Возвращает JSON объект с токеном доступа к API и объектом текущего пользователя
JSON
{
"user": {
"id": 13,
"login": "user",
"name": "user",
"parent_id": null,
"permissions": [
{
"id": 223,
"name": "any-permission"
},
{
"id": 221,
"name": "any-permission"
},
{
"id": 222,
"name": "any-permission"
},
{
"id": 220,
"name": "any-permission"
}
],
"created_at": "",
"updated_at": "2022-04-21 16:37:46",
"access_token_id": "c862e3c5a5a87d8b2756e4ad44a43f0a71cbf9cf3063cae019802d0b032ee17f32f69364e7aadb23",
"can_update_password": true,
"analytic_license": [
{
"type": "analytic_l1",
"type_pretty": "LIC-XXXX-YY-L1",
"all": 100,
"free": 98,
"used": 2
},
{
"type": "analytic_l2",
"type_pretty": "LIC-XXXX-YY-L2",
"all": 100,
"free": 100,
"used": 0
},
{
"type": "analytic_l3",
"type_pretty": "LIC-XXXX-YY-L3",
"all": 100,
"free": 99,
"used": 1
}
]
},
"access_token": "Bearer token"
}
422
Возвращает JSON объект с ошибкой, см. Валидация
JSON
{
"message": "Тут не будет информативного сообщения",
"errors": {
"any_key": [
"Тут будет описана причина ошибки"
]
}
}
419
Превышено количество сессий. Возвращает информацию об активных сессиях
JSON
{
"sessions": [
{
"id": "session_id",
"is_current": false,
"user_agent": "Xiaomi / M2102J20SG / 11 / 1.1.0 / Android",
"client": "android",
"online": true,
"ip": "127.0.0.1"
}
],
"sessions_limit": 5,
"sessions_count": 5,
"captcha_will_required_in": 120
}
integer
captcha_will_required_in
Если капча валидна, но при этом превышен лимит сессий, капча будет считаться валидной в течении 120 секунд (как в примере). В случае, если прошло большее количество времени, то необходимо заново получить капчу. Будет присутствовать только если капча включена
429
Превышено количество попыток получения токена
JSON
Два тротлинга, и работают они одновременно:
1. Есть 10 попыток послать запрос с одного IP-адреса за 10 минут
2. Есть 10 попыток послать запрос на получение токена конкретного логина
Пример
JSON
curl -k --location --request POST 'https://vms.local/api/v1/token' \
--header 'Accept:application/json' \
--header 'Content-Type: application/json \
--data-raw '{
"login": "mylogin@mail.com",
"password": "mypassword",
"session_id": "null|session_id",
"captcha": "9U6yh",
"key": "$2y$10$3gXEas4WVUryBA8GgF37vulJz1UrAo2VaYbWccaxeNYoZ.3UJqHYu"
}'