App2Web через WebView
Для авторизации в приложении с использованием компонента WebView в T‑ID реализован сценарий App to Web.
Принцип работы
Партнер инициализирует запуск WebView через кнопку Войти с Т‑ID.
Пользователь инициирует процесс авторизации, нажимая Войти с Т‑ID на сайте или в приложении партнера.
Сервис партнера генерирует параметры
code_verifier
иcode_challenge_method
и создает их преобразованную версиюcode_challenge
через преобразованиеcode_challenge = code_challenge_method(code_verifier)
, гдеcode_challenge_method
— трансформирующая функция. Подробнее о хешировании параметраcode_verifier
.- Чтобы предотвратить последствия возможного перехвата кода, используйте защиту Proof Key for Code Exchange. Значение должно быть уникальным для каждого запроса кода авторизации.
- Требуемая генерация —
base64_url(SHA256(code_verifier))
. Пример генератора.
Авторизация инициируется через вызов метода
GET https://id.tbank.ru/auth/authorize
со следующими параметрами:client_id
— идентификатор, который вы получили после регистрации.redirect_uri
— ссылка в приложение (app link), указанная в анкете.code_challenge
code_challenge_method
response_type
—code
response_mode=query
Открывается окно аутентификации
id.tbank.ru
для ввода номера телефона.Пользователь вводит данные для прохождения аутентификации и нажимает Продолжить, соглашаясь с передачей данных. В зависимости от настроек партнерского приложения, пользователь может отметить данные, которые он не готов предоставить. Если пользователь разрешает передачу всех данных, в следующих авторизациях это окно не открывается.
На
https://myintegration.ru/auth/complete
приходит запрос. Вид запроса:https://myintegration.ru/auth/complete?code=c.1aGiAXX3Ni&session_state=hXXXXXXY3kgs3nx0H3RTj3JzCSrdaqaDhU6lS8XXXXX.i4kl6dsEB1SQogzq00
Происходит переход в приложение партнера по app link с параметром
code
— сохраните его для дальнейшего обмена на токены.Приложение партнера получает
access_token
через метод POST https://id.tbank.ru/auth/token. Запрос должен выполняться с бэкенда.
- Authorization: basic, где username и password соответствуют
client-id
, который вы получили на электронную почту после регистрации. Примеры составления на разных языках. - Content-type:
application/x-www-form-urlencoded
. - grant_type:
authorization_code
. - redirect_uri:
mobile_redirect_url
— тот, который был направлен вauthorize
. - code_verifier
- code — код из пункта 8.
- Приложение партнера получает ответ — авторизационный сервер проверяет
code_verifier
на соответствиеcode_challenge
и возвращает токены или отвечает ошибкой.
- access_token: токен для обращения к T-API для получения информации о пользователе;
- token_type: тип авторизации по
access_token
; - expires_in: время жизни
access_token
; - id_token: технический параметр T‑ID.