Авторизация публичных приложений АТС с подтверждением пользователя
Приложение АТС перенаправляет пользователя на URL авторизации https://<hostname>/oauth/authorize, передавая данные авторизации в качестве параметров GET-запроса в формате application/x-www-form-urlencoded.
Параметр | Описание |
response_type | Тип ответа, всегда должен иметь значение code |
redirect_uri | URI, по которому система будет посылать ответ. Должен совпадать с указанным при создании приложения АТС |
client_id | App ID, сгенерированный при создании приложения АТС |
scope | Сфера разрешений для приложения АТС, должен иметь значение all |
Пример
https://<hostname>/oauth/authorize?response_type=code&client_id=2bb0c19ea4df4b908cf2db51a1aea86b&redirect_uri=https://testsite.com&scope=all
2. Пользователь разрешает или запрещает доступ приложению АТС к системе от своего имени. Если пользователь не авторизован в системе, перед этим он проходит авторизацию с помощью логина и пароля:
Если пользователь разрешает доступ, то при последующих попытках авторизации запрос на доступ появляться не будет, до тех пор, пока пользователь явно не удалит разрешение.
3. Если пользователь разрешает доступ, система перенаправляет пользователя на Redirect URL приложения АТС, указанного при регистрации, передавая в качестве параметра запроса временный код для получения токена доступа:GET https://<apphostname>/authorized?code=SpHCEr6qiCj1kZRTvEb36qZAqWqIHz
4. Для получения токена доступа нужно отправить POST-запрос на сервер системы на URL https://<hostname>/oauth/token, используя полученный код:POST https://<hostname>/oauth/token
Параметры передаются в теле запроса в формате application/x-www-form-urlencoded.
Параметры запроса
Параметр | Описание |
---|---|
grant_type | Всегда должен иметь значение authorization_code |
code | Временный код для получения токена доступа, полученный приложением АТС на предыдущем шаге |
redirect_uri | URI перенаправления. Должен совпадать с одним из указанных при создании приложения АТС |
client_id | App ID, сгенерированный при создании приложения АТС |
client_secret | App Secret, сгенерированный при создании приложения АТС |
Параметры ответа
Параметр | Описание |
---|---|
access_token | Токен доступа. Используется приложением АТС для API-запросов |
expires_in | Период времени в секундах, в течение которого токен действителен. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло |
token_type | Тип токена. Всегда имеет значение Bearer |
refresh_token | Refresh token, который может быть использован для регенерации токена доступа, когда он стал недействителен |
scope | Сфера разрешений для приложения АТС, имеет значение all |
Пример
curl -L -X POST 'https://<hostname>/oauth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=aIlsm1bCglDGvQKShm0AhHrBhDyshn' \
--data-urlencode 'client_id=a80f1e618ddd4d5584e2bd48fd404194' \
--data-urlencode 'client_secret=a2423941f5be408c918d5f7207570990' \
--data-urlencode 'redirect_uri=https://testsite.com'
Ответ системы:
{
"access_token": "itFyАvKhTrZDCwH2Q2oZYmo94IvOIL",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "L40pLFI9hgoРlpDlFHNAvPUt0КWK0С",
"scope": "all"
}
← Создание и авторизация приложений АТС Авторизация доверенных приложений АТС →