Авторизация в системе через REST API
Если в системе включена авторизация, то для начала работы с API необходимо пройти авторизацию в системе.
Реализованы несколько вариантов авторизации:
- BASIC авторизация.
- Авторизация методом GET по адресу /api/session с получением token.
- Авторизация методом POST по адресу /api/session с получением token.
- 1 BASIC авторизация
- 2 Авторизация методом GET
- 3 Авторизация методом POST
- 4 Восстановление после окончания срока действия сессии
- 5 Вызов функций с использованием token
BASIC авторизация
Данный вид авторизации чаще всего используется браузером для доступа к функциям API.
При использовании данного метода необходимо в заголовке каждого запроса указывать:
Authorization: Basic {login}:{password}
Допускается base64 при формировании строки {login}:{password}
Авторизация методом GET
Еще один способ авторизации - отправить GET запрос по адресу /api/v1/session, при этом в url запросе указать параметры login и password:
https://localhost:9000/api/v1/session?username=${Username}&password=${Password}
Ответ сервера:
{
Access_token:"123123123", Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321",
}
Авторизация методом POST
Авторизация по логину и паролю происходит путем отправки POST запроса на сервер, в результате которого возвращается access_token и refresh token в формате JSON.
Пример запроса:
POST /oauth/token HTTP/1.1
Host: mobilesmarts.ru/api/session
Content-Type: application/x-www-form-urlencoded
grant_type=password&client_id=123&client_secret=user&username=user@domain.ru&password=123456
Ответ сервера:
{
Access_token:"123123123",
Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321", }
Восстановление после окончания срока действия сессии
Восстановление после окончания срока действия сессии происходит путем отправки refresh_token на сервер, в результате приходит новый access_token и refresh_token
Пример:
POST /oauth/token HTTP/1.1
Host: mobilesmarts.ru/api/session
Content-Type: application/x-www-form-urlencoded
grant_type:refresh_token&client_id=123&client_secret=user&refresh_token=321321321
Ответ:
HTTP/1.1 200 OK
Content-Type: application/json
{
Access_token:"99999",
Token_type:"bearer",
Expires_in:86400,
Refresh_token:"789789789",
}
Вызов функций с использованием token
Для того чтобы обратиться к функциям(если не используется Basic авторизация), для которых необходима авторизация, необходимо в заголовке Authorization передавать токен:
Authorization: Bearer <token>
Иначе сервер вернет ошибку авторизации 401.