Аутентификация по коду подтверждения
Для приложений с серверной частью можно получить Access Token с помощью authorization code flow.
Конечный пользователь использует свою учетную запись Контура для аутентификации и выдает разрешение на доступ к выбранным данным. После получения разрешений, приложение отправляет запрос в API Контур.Экстерна.
Алгоритм аутентификации
Аутентификация выполняется в два этапа:
Получение authorization code.
Получение Access Token.
Получение Access Token
Полученный временный код подтверждения нужно обменять на Access Token.
Метод: POST TokenEndpoint.
Параметры запроса
Content-type: application/x-www-form-urlencoded
grant_type
— тип аутентификации. Укажите значение:authorization_code
;code
— временный код подтверждения;client_id
— сервисное имя, выдается вместе с api-key;client_secret
— api-key;redirect_uri
— ссылка, на которую получен код подтверждения.
Все параметры имеют тип данных string.
Ответ
OpenID Провайдер вернет в ответ Access Token.
Пример запроса
POST /connect/token HTTP/1.1
Host: identity.kontur.ru
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
code=SplxlOBeZQQYbYS6WxSbIA
client_id={{client_id}}
client_secret={{client_secret}}
redirect_uri=http://www.example.com
Пример ответа
200 OK
Content-type: application/json
{
"access_token": "AAAAAAAAAAAAAAAAA",
"token_type": "Bearer",
"expires_in": 3600,
"id_token": "eyJhbGciOifQ.ewogI3pAKfQ.ggW8hq-rvKMzqg"
}