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

Работа с токеном в Assistant SDK Android

Обновлено 21 декабря 2023

О токене

Для аутентификации пользователей на поверхности используется токен авторизации. Ниже описано, как использовать его с SDK.

Передача токена в SDK

При интеграции Assistant SDK хост-приложение должно реализовать у себя несколько интерфейсов. Один из них — VPSTokenProvider. В этом интерфейсе необходимо возвращать токен авторизации: по запросу хост-приложение отдаст ассистенту VPSTokenProvider.requestToken.

При запросе токена будут указаны следующие причины отсутствия токена в SDK:

  • AUTHORIZATION_ERROR — получили ошибку авторизации от VPS;
  • REFRESH — токена нет в SDK, или он был сброшен.

Кеширование токена есть внутри Assistant SDK. Если токен необходимо принудительно сбросить, реализуйте на своей стороне VpsTokenInvalidator — он будет отправлять события в моменты, когда надо сбрасывать.

VPSTokenProvider, а также все интерфейсы, которые нужно реализовать, описаны в примере реализации SdkClientExtApp — мы поставляем его вместе с SDK.

Поведение токена можно настроить с помощью TokenConfig:

@Keep
data class TokenConfig(
/**
* Суммарный таймаут ожидания на все запросы токена
*/
val tokenWaitTimeout: Long = 10L,
/**
* Единица измерения для таймаута ожидания запроса токена
*/
val tokenWaitTimeoutTimeUnit: TimeUnit = TimeUnit.SECONDS,
/**
* Количество попыток заново запросить токен в случае неудачи
*/
val tokenWaitRetryCount: Int = 3,
/**
* Период обновления токена в штатном режиме (его необходимо обновлять раз в N минут)
*/
val tokenRefreshRate: Long = 2,
/**
* Единица измерения для периода обновления токена
*/
val tokenRefreshRateTimeUnit: TimeUnit = TimeUnit.MINUTES
)

От времени жизни токена зависит, нужно ли реализовать кеширование на стороне хоста.

Если время жизни токена менее суток

Кешировать токен на стороне хоста необязательно. При каждом вызове VPSTokenProvider.requestToken запрашивать токен из бэкенда.

Если время жизни токена несколько суток

Рекомендуем на стороне хост-приложения реализовать свой кеш токена — за счет кеширования можно сэкономить время.

При запросе VPSTokenProvider.requestToken:

  • с причиной AUTHORIZATION_ERROR запросить из бэкенда новый токен;
  • с причиной REFRESH вернуть токен из кеша.

Если вы используете такой сценарий, обязательно сбросьте кеш в хосте при сбросе токена через VpsTokenInvalidator.

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