Page tree

Citypoint - контроль и аналитика автопарка

Skip to end of metadata
Go to start of metadata

Авторизация проходит по протоколу oAuth2, посредством пересылки логина/пароля (password credentials grant).

Запрос:

URL:

POST https://api.url/v2.1/oauth/token

Заголовки запроса:

Content-Type: поддерживаются application/x-www-form-urlencoded и multipart/form-data


Параметры запроса:

ИмяТипЗначение по умолчаниюОписание
grant_typestring

Тип авторизации, при первоначальном заходе должно быть password

client_idint
Идентификатор клиента (выдаётся по запросу)
client_secretstring

Секретный ключ клиента (выдаётся по запросу)

usernamestring
логин пользователя
passwordstring
пароль пользователя
scopestring

К каким api запрашивается доступ.

Если используется только v2.1 то можно оставить пустым

Ответ:


ПолеОписание
token_typeТип ключа.
expires_in

На сколько выдан ключ в секундах, по умолчанию 300 секунд (Время жизни access_token)

После истечения срока необходима продлить авторизацию с помощью refresh_token - см. соотв. метод

access_token

Токен доступа в формате JWT.

Внутри токена содержит поле user_id - идентификатор пользователя.

Для получения  user_id надо разбить  access_token по "." и декодировать полученные части из BASE64.

refresh_token

Токен для обновления access_token по истечению его срока действия. 

Время жизни refresh_token по умолчанию 1 год. Доступно изменение данного периода по запросу пользователя.


Коды ответов:

200 ОК - Сервер обработал запрос. В теле ответа  содержатся ключи доступа.

401 Unauthorized - некорректный логин/пароль пользователя, передан некорректный секрет

400 Bad Request - Переданы неподдерживаемые параметры либо сервер не понял запрос (описание ошибки в теле ответа).

Также возможны другие ошибки.

Пример

POST http://api.url/v2.1/oauth/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

grant_type=password&client_id=1&client_secret=my_sercret&username=demo&password=demo&scope=api:mobile

HTTP/1.1 200 OK
Content-Type: application/json
					
{
    "token_type": "Bearer",
    "expires_in": 300,
    "access_token": "access key",
    "refresh_token": "refresh key"
} 



  • No labels