ym88659208ym87991671
Подписать Транзитный токен для входа в ЦА | Документация для разработчиков

Подписать Транзитный токен для входа в ЦА

Обновлено 13 июля 2026

Полученный Партнером транзитный токен (поле token из ответа /v2/auth/assistant/get-transittoken) необходимо подписать закрытым ключом, хранящимся в защищенном хранилище устройства. Для этого используется публичный метод SDK SberID signTransitToken.

Вызов метода подписи

Партнер должен передать в SDK только значение jti (UUID), извлеченное из поля token ответа бэкенда.

Важно! В метод передается не весь объект токена, а только его идентификатор jti (строка в формате UUID). SDK самостоятельно извлекает приватный ключ по alias, выполняет криптографическую подпись и формирует итоговый артефакт signedTransitToken.

Пример вызова:

Android (Kotlin):

// jti - это UUID из поля token ответа /v2/auth/assistant/get-transittoken
val jti = "3a859d28-1cea-4847-ba55-41fccfa0b6b0"

// Вызов метода подписи
SIDLogin.signTransitToken(transitToken = jti)

iOS (Swift):

// jti - это UUID из поля token ответа /v2/auth/assistant/get-transittoken
let jti = "3a859d28-1cea-4847-ba55-41fccfa0b6b0"

// Вызов метода подписи
SIDLogin.signTransitToken(transitToken: jti)

Обработка результата

Метод signTransitToken работает асинхронно. Результат возвращается через событие AuthEvents.SignTransitTokenEvent. Партнер должен подписаться на это событие и обработать три возможных сценария:

СобытиеОписаниеДействие Партнера
Success(signedTransitToken: String)Токен успешно подписан. SDK вернул готовый артефакт signedTransitToken.Передать полученный signedTransitToken в SDK Цифрового Ассистента. Важно: Формат токена кастомный, не является стандартным JWT. Передавайте строку "как есть", не пытайтесь ее парсить или модифицировать.
KeyNotFoundВ защищенном хранилище устройства отсутствует приватный ключ (например, пользователь очистил данные приложения, сбросил устройство или ключ был скомпрометирован).Показать пользователю ошибку на UI (например, "Не удалось перейти в Ассистента, попробуйте позже") и прервать процесс перехода. Или инициировать перелогин пользователя.
SignFailed(cause: String?)Произошла внутренняя ошибка при криптографической операции.Показать пользователю ошибку на UI (например, "Не удалось перейти в Ассистента, попробуйте позже") и прервать процесс перехода. Или инициировать перелогин пользователя.

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

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