ym88659208ym87991671
Обработка ответа после авторизации | Документация для разработчиков

Обработка ответа после авторизации

Обновлено 30 января 2026

После авторизации пользователем по Сбер ID будет вызван обратный deeplink равный redirectUri, переданного на старте входа. Данный deeplink вызовет ваше приложение и будет содержать информацию о входе.

В манифесте вашего приложения для activity, которая будет обрабатывать результат авторизации по Сбер ID, необходимо указать scheme и host обратного deeplink.

Если хотите обрабатывать обратный deeplink в той же activity, в которой и стартовали аутентификацию, необходимо указать в атрибуте launchMode для вашей активити значение "singleTop" и получать интент с результатом в методе onNewIntent(intent: Intent).

<activity android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"> //для обработки deeplink в той же activity
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="redirect"
android:scheme="partner" />
</intent-filter>
</activity>

Для проверки результата необходимо передать полученный intent в метод SIDLogin.getIDAuthResult(), который обработает ответ и вернет сущность SIDResultModel. В этой модели будут содержаться все необходимые данные для аутентификации, включая nonce, state и authCode. Вам нужно передать их на свой бэкенд для дальнейшей аутентификации вместе с codeVerifier (если используете), созданным на этапе входа.

Пример обработки результата

В той же activity:

//В методе onNewIntent, если применить для activity android:launchMode="singleTop"
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val resultModel = SID.Login.getIDAuthResult(intent)
if (resultModel.isSuccess == true) {
// Отправьте result.authCode, resultModel.state, resultModel.nonce на свой бэк для окончания авторизации
} else {
// Ошибка, отобразите пользователю, что вход не получился
}
}

При обработки в новой activity можно перехватить в onCreate(savedInstanceState: Bundle?):

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val resultModel = SID.Login.getIDAuthResult(intent)
if (resultModel.isSuccess == true) {
// Отправьте result.authCode, resultModel.state, resultModel.nonce на свой бэк для окончания авторизации
} else {
// Ошибка, отобразите пользователю, что вход не получился
}
}

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней

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