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_challengecode_challenge_methodresponse_type—coderesponse_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.