Подсистема Такском API       техническое описание
×

3.1.3. OAuth

В рамках сервиса также реализован авторизационный гейт на базе протокола OAuth 2.0.
Для начала работы с OAuth необходимо зарегистрировать приложение на стороне личного кабинета Такском-Касса и прописать ему права на доступ к авторизации с помощью OAuth. На данный момент эта операция производится вручную, по запросу интегратора. Необходимо связаться с разработчиками компании Такском и сообщить о своем желании использовать OAuth для авторизации в API.
Авторизация через авторизационный гейт OAuth происходит в два этапа.
1.       Ссылка для пользователя для прохождения авторизации через OAuth:
HTTP-запрос:
HTTP-Method: GET
Адрес запроса (URI)
https://auth-<server>.taxcom.ru/core/connect/authorize
Параметры запроса
client_id
Публичный идентификатор внешнего приложения, полученный при регистрации
response_type
Тип ответа, поддерживается значение «code»
scope
Набор прав доступа, требуемых приложению для работы. На данный момент реализуется единственное право – «api»
redirect_url
Адрес, на который будет совершено перенаправление после авторизации и подтверждения прав приложения пользователем
После перехода по ссылке абонент проходит авторизацию на сервисе и подтверждает полномочия приложения интегратора на доступ к его данным.
Финальным шагом этой операции будет редирект на адрес, указанный в первом пункте в параметре redirect_url. Одним из параметров запроса при редиректе будет:
Параметры запроса
code
Одноразовый код для получения маркера доступа к API
2.       При обработке редиректа со стороны сервера нужно сделать запрос, по которому, имея полученный при редиректе в качестве параметра код, можно получить маркер доступа к API.
HTTP-запрос:
HTTP-Method: POST
Адрес запроса (URI)
https://<server>.taxcom.ru/core/connect/token
Параметры запроса
grant_type
Тип подтверждения прав, указывается значение “authorization_code”
code
Код, полученный от сервера на предыдущем шаге
redirect_uri
Адрес, на который было совершено перенаправление после авторизации, должен совпадать с путем из пункта 1.
Заголовок запроса
Authorization:clientId:Secret
clientId = Публичный идентификатор внешнего приложения, полученный при регистрации
secret – закрытый ключ приложения, полученный при регистрации
Строка clientId:Secret конвертируется в Base64
Ответ
{"access_token":"9eca5bce0a2a21aaff4b09901b92333a","expires_in":3600000,"token_type":"Bearer"}
Маркер, полученный в поле access_token, в дальнейшем используется в качестве маркера временного доступа при работе с API. Время жизни маркера можно оговаривать при регистрации, а также его можно продлять с помощью специального метода продления времени жизни маркера доступа.