ym88659208ym87991671
Авторизация через мобильное приложение Сбербанк Онлайн | Документация для разработчиков

Авторизация через мобильное приложение Сбербанк Онлайн

Обновлено 6 ноября 2024

Для корректной работы необходимо инициализировать SDK SDK до вызова методов авторизации

Описание сценария и метода loginWithID

Для входа через мобильное приложение Сбербанк Онлайн используется метод

SID.Login.loginWithID(activity: FragmentActivity, uri: Uri)

Описание параметров FragmentActivity используется для запуска приложения Сбербанк Онлайн или веб Страницы Uri для передачи всех данных, необходимых для аутентификации, таких как clientId, scope, state, nonce, redirectUri, codeChallenge и codeChallengeMethod.

Этот метод выполняет следующие действия:

Проверка наличия мобильного приложения Сбербанк Онлайн. Метод проверяет, установлено ли на устройстве пользователя мобильное приложение Сбербанк Онлайн. Если приложение установлено, метод запускает его для выполнения процесса входа.

Запуск веб-страницы Сбер ID. Если мобильное приложение Сбербанк Онлайн не установлено на устройстве пользователя, метод запускает веб-страницу Сбер ID для выполнения процесса входа.

Таким образом, этот метод обеспечивает гибкий способ входа, позволяя пользователям использовать как мобильное приложение, так и веб-страницу Сбер ID в зависимости от наличия приложения на их устройстве.

Если вы подключаете aar файлом зависимость (legacy):
Чтобы сценарий сработал, необходимо добавить зависимость на библиотеку браузера AndroidX в ваш проект. Для этого в файле build.gradle, в разделе зависимостей, добавьте следующую строку, если ее еще нет:
dependencies {
implementation "androidx.browser:browser:1.3.0"
}

Указанная версия актуальна на момент публикации, но вы можете использовать более новую версию, если она доступна.

Формирование ссылки и запуск сценария

Для формирования uri используйте:

  • Метод SID.Login.createUriForLogin позволяет создать uri для авторизации по Сбер ID.
  • Класс PkceUtils содержит утилиты для создания значений параметров протокола PKCE (необязательные параметры, если вы не используете PKCE).

Обратите внимание, что clientID передается через настройки SDK

Пример реализации

//Создание параметров для поддержки протокола PKCE.
val codeVerifier = PkceUtils.generateRandomCodeVerifier(SecureRandom())
val codeChallenge = PkceUtils.deriveCodeVerifierChallenge(codeVerifier)


//Создание Uri с параметрами для аутентификации, все значения нужно поменять на свои, тут указаны примеры
val uri = SID.Login.createUriForLogin(
clientId = "clientId вашего сервиса", // на данный момент необходимо дублировать параметр
scope = "добавьте все необходимые вам scope",
state = "random_state",
nonce = "random_nonce",
redirectUri = "partner://redirect",
codeChallenge = codeChallenge,
codeChallengeMethod = PkceUtils.getCodeChallengeMethod()
)

//Запуск аутентификации по Сбер ID, первым параметром нужно передать контекст
SID.Login.loginWithID(this, uri)

Прочитать про общую схему входа, а так же параметры можно на страницу подключение Сбер ID

redirectUri должен быть добавлен для вашего сервиса в привязке к clientId. Для этого направьте запрос на support@ecom.sberbank.ru на добавление deeplink в список доверенных. В запросе указывается clientId и список deeplink, по которым будет производиться возврат в мобильное приложение партнера. Сотрудник банка добавит домен в список разрешенных.

Если все сделано верно, запустится мобильное приложение Сбербанк Онлайн или веб окно с различными способами идентификации входа по Сбер ID.

После авторизации в мобильном приложение Сбербанк Онлайн пользователя, по redirectUri произойдет редирект на нужный экран вашего приложения.

Про обработку результата читайте в статье Обработка ответа после авторизации

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.