Авторизация по OAuth 2.0
Для выполнения запросов к API необходимо передавать access_token. Авторизация осуществляется по протоколу OAuth 2.0. Этот протокол позволяет интеграторам выполнять запросы к АПИ от имени конкретного пользователя ATI.SU.
Программное обеспечение может запрашивать у пользователей доступ к их персональным данным, без получения и хранения их логина и пароля. Токен нужен для того, чтобы обеспечить безопасность интегратора.
Как получить access_token
Шаг 1
Напишите Тикет консультантам по интеграции. В нём укажите:
- фио и email сотрудника, ответственного за интеграцию API;
- название программного продукта;
- для чего вам API.
Шаг 2
Мы пришлём вам client_id
и client_secret
. Для каждого вашего программного продукта они будут уникальными.
Внимание! Это ещё не токен, который нужно передавать в заголовках для доступа к API, см. далее.
Шаг 3
Внимание! Под клиентом в данном шаге подразумевается пользователь от имени которого будут выполняться запросы к АПИ. Это может быть пользователь вашей фирмы в этом случае просто откройте ссылку в браузере. Также это может быть любой участник ATI.SU, который пользуется вашим приложением.*
Чтобы начать процесс получения access_token направьте клиента по адресу https://id.ati.su/oauth2/ передав в query параметрах:
client_id
— получен на шаге 2scope
— запрашиваемый уровень доступа для будущего access_token,redirect_uri
— адрес на который нужно направить пользователя после его согласия предоставить доступ к АПИ от его имениresponse_type
— укажите значениеcode
Шаг 4
Пользователю будет предложено предоставить доступ для работы с АПИ от его имени. В случае согласия мы перенаправим пользователя на redirect_uri
с параметрами:
code
— далее обменивается на access_tokenclient_id
scope
response_type
Внимание! Code имеет ограниченное время жизни, в случае если оно истекло, потребуется повторить шаги 3 и 4.
Шаг 5
C помощью метода ниже можно получить access_token,
передав grant_type: "authorization_code"
Внимание! Полученный access_token также имеет ограниченное время жизни - 2 часа.
Шаг 6
Для выполнения запроса от имени пользователя необходимо передать токен в заголовке Authorization: Bearer ...
Пример заголовка:
Authorization: Bearer 0A_00_buLX0dZnHQJ6vt24FFeO7pN1czn6qb8-c7evra1oeKgjR5St58Su3MwkwGokib3H4mtZ04jiKydKdpAYTEFIoYB2HRjRFjuVJ4Iks8Q-pexIfOPw_IPcNqKtpYtO7QGb
Пример запроса (получение id пользователя):
GET /gw/oauth2/oauth2/v1/info HTTP/1.1 Host: api.ati.su Authorization: Bearer 0A_00_DnxlUQhGiHJpLfJ-0QIRn4ENB5msjjhTSqBvUKvt_K_q1b2RV40twgXrCRsCt-zViOw8ksWRKpY9mIapm7ACkNo12-94eanmxFDPLkdRZvG50FzbNAIkVjD4_flA9rNG
Шаг 7
При истечении времени жизни access_token необходимо его обновить, чтобы продолжить работу с АПИ.
Для получения нового access_token необходимо выполнить запрос с параметром grant_type: "refresh_token"
передав refresh_token
полученный на шаге 3 :