Публичный API [3.0]: Авторизация

Содержание

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

Метод авторизации используется для получения access token по протоколу OAuth 2.0 с использованием гранта Client Credentials Grant. Применяется для авторизации сервис-к-сервису без участия пользователя.

Для авторизации и получения данных требуется активная интеграционная УЗ с правами на чтение сущностей (ТС, водителей, терминалов и др. в зависимости от метода) в запрашиваемом узле дерева.
Для всех методов требуются отдельные права доступа (один метод - одно право).

В случае ошибок авторизации или валидации запроса метод возвращает код, соответствующий ошибке, и тело в формате JSON, соответствующее формату Problem Details.

Запрос

Большинство методов API на сервере SKAI-Платформа требуют передачи в запросе токена авторизации.

Метод предназначен для получения токена авторизации по данным Вашей учетной записи на сервере SKAI-Платформа.

Ссылка на Swagger (статистики) / Swagger(основные методы)

Метод запроса: POST
Запрос: 
POST/connect/token

Перейдя по адресу, сделать запрос следующего вида:

grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=terminals:write

Вместо CLIENT_ID/CLIENT_SECRET должны быть указаны авторизационные данные.

Headers запроса: Content-Type: application/x-www-form-urlencoded

В body запроса должны передаваться: 

client_id (идентификатор интеграционной УЗ);
client_ secret (набор символов, выдаваемый платформой при создании интеграционной УЗ);
scope (запрашиваемая область доступа);
grant_type (тип гранта со значением: client_credentials).

Все элементы body запроса передаются в кодировке base64 (Client credentials location: basic. Например: dmVmZW5kaWV2YTowMmQxOTE4Yy02YjIzLTQ2NzQtYTYwMy03NWFlZDcyOGFmMzM=).

 

Остальные параметры следует оставить без изменений.

Так же доступен вариант выполнения curl запроса, скелет ниже.

curl -X POST "http://public.skai.online/token" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=password" --data-urlencode "username=*******" --data-urlencode "password=********" --data-urlencode "client_id=*********"

Ответ

В ответе метод возвращает JSON, в блоке access_token которого находится токен авторизации. 
Ответ имеет вид: {

{
  "access_token": "eyJhbGciOiJSUzI1NiIs...",
  "expires_in": 3600,
  "token_type": "Bearer",
"scope": "terminals:write"
}

В последующих запросах токен передается в заголовке запроса: Authorization:Bearer (полученный при авторизации токен).

Срок жизни токена - 1 час. По окончанию запроса закрывать сессию не требуется, для продолжения сессии после 1 часа потребуется refresh_token

В параметре ответа "scope" указываются соответствующие пользователю права доступа.

Ошибки

Код Описание Содержание Response Body (пример) Комментарий
400



Bad Request





{"error": "invalid_request",
"error_description": "Missing grant_type parameter"}

Отсутствует обязательный параметр grant_type или используется неверный Content-Type

{"error": "invalid_grant",
"error_description": "User account is locked"}

Учётная запись пользователя заблокирована

{"error": "invalid_client",
"error_description": "Invalid client_id"}

Неверный client_id

{"error": "unsupported_grant_type",
"error_description": "Unsupported grant_type"}

Передан неподдерживаемый grant_type

401 Unauthorized

{"error": "invalid_token",
"error_description": "Token has been expired"}

Выполняется одно из следующих условий:

  • Токен невалидный
  • Истек срок действия токена
403 Forbidden

{"error": "insufficient_scope",
"error_description": "The client has missing scope: admins:read"}

У пользователя нет прав для получения запрашиваемой сущности

Custom Fields

Author: - Mon, Apr 20, 2026. This article has been viewed 156 times.

Online URL: https://kb.skai.online/article/%d0%9f%d1%83%d0%b1%d0%bb%d0%b8%d1%87%d0%bd%d1%8b%d0%b9-api-3-0-%d0%90%d0%b2%d1%82%d0%be%d1%80%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-5719.html

Powered by PHPKB (Knowledge Base Software)