Перейти к основному содержимому

App2Web через WebView

Для авторизации в приложении с использованием компонента WebView в TID реализован сценарий App to Web.

Принцип работы

  1. Партнер инициализирует запуск WebView через кнопку Войти с ТID.

  2. Пользователь инициирует процесс авторизации, нажимая Войти с ТID на сайте или в приложении партнера.

  3. Сервис партнера генерирует параметры 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)). Пример генератора.
  4. Авторизация инициируется вызовом метода GET https://id.tbank.ru/auth/authorize со следующими параметрами:

    • client_id — идентификатор, который вы получили после регистрации.
    • redirect_uri — ссылка в приложение (app link), указанная в анкете.
    • code_challenge.
    • code_challenge_method.
    • response_type: code.
    • response_mode=query.

    Пример запроса:

    GET https://id.tbank.ru/auth/authorize?client_id=%client_id%&redirect_uri=https://myintegration.ru/auth/complete&code_challenge={codeChallenge}&code_challenge_method=S256&response_type=code
  5. Открывается окно аутентификации id.tbank.ru для ввода номера телефона.

  6. Пользователь вводит данные для прохождения аутентификации и нажимает Продолжить, соглашаясь с передачей данных. В зависимости от настроек партнерского приложения, пользователь может отметить данные, которые он не готов предоставить. Если пользователь разрешает передачу всех данных, в следующих авторизациях это окно не открывается.

  7. На https://myintegration.ru/auth/complete приходит запрос вида:

    https://myintegration.ru/auth/complete?code=c.1aGiAXX3Ni&session_state=hXXXXXXY3kgs3nx0H3RTj3JzCSrdaqaDhU6lS8XXXXX.i4kl6dsEB1SQogzq00
  8. Происходит переход в приложение партнера по app link с параметром code — сохраните его для дальнейшего обмена на токены.

Токены

Чтобы получить Access и Refresh токены, используйте метод POST https://id.tbank.ru/auth/token.

Авторизационный сервер проверяет code_verifier на соответствие code_challenge и возвращает токены или отвечает ошибкой.

  • 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.

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie», с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.