AWS Cognito на Android - Как получить новый сеанс с токена обновления - PullRequest
0 голосов
/ 01 июля 2018

Я использую AWS Cognito в качестве поставщика аутентификации mu для приложения для Android, и у меня установлен срок действия маркера обновления на 30 дней в моем пуле пользователей.

Полученный токен доступа действителен в течение 1 часа, поэтому я могу автоматически возобновить сеанс пользователя, позвонив по номеру getCurrentUser() на CognitoUserPool, если пользователь покидает приложение и возвращается в течение 1 часа.

Однако я хочу использовать кэшированный токен обновления, если пользователь возвращается через несколько часов, поэтому ему не нужно постоянно входить в систему. Документация CognitoUserPool указывает, что он будет использовать токен обновления только в случае его использования. пока токен доступа все еще активен.

Разве это не отменяет назначение токена обновления или токен обновления предназначен для использования только при активном токене доступа?

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

1 Ответ

0 голосов
/ 13 октября 2018

Cognito SDK внутренне использует токен обновления для обновления текущего сеанса пользователя:

//get CognitoUser instance by passing userName or emailID

CognitoUser cognitoUser = cognitoUserPool.getUser(userName);

//simply get User Session again and in your authenticationHandler, handle userSession obtained
cognitoUser.getSessionInBackground(authenticationHandler);

getSessionInBackground будет внутренне использовать токен обновления для генерации нового сеанса без необходимости передачи пароля.

...