Авторизация публичных приложений АТС с подтверждением пользователя

  1. Приложение АТС перенаправляет пользователя на 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" }

← Создание и авторизация приложений АТС Авторизация доверенных приложений АТС →