Интеграция пользовательских пулов Amazon Cognito с API-шлюзом

имаюсь разработкой приложения, которое использует AWS Cognito в качестве поставщика удостоверений. Таким образом, пользователь проходит аутентификацию в AWS Cognito Pool и получает токен доступа, идентификатор доступа и токен обновления. Затем пользователь может отправлять запросы к моему приложению. Я получаю токен доступа, проверяю его, получаю профиль пользователя на Cognito AWS и авторизую запрос.

Проблема заключается в том, что после истечения срока действия токена доступа и отправки клиентом токена с истекшим сроком действия бэкэнду приложение бэкэнда получает ошибку (токен испытан или не авторизован).

Как я могу заставить этот рабочий процесс работать?

Я подумывал отправить клиенту сообщение о том, что токен истек, и клиент обновил его в Cognito Pool. Это правильный подход?

Ответы на вопрос(3)

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

Эти токены являются токенами JWT и содержат время истечения внутри себя. Вы можете декодировать токен JWT, а также кэшировать этот срок действия вместе с токеном. При каждом обращении к кешу токенов также проверяйте текущее время по отношению к времени истечения срока хранения в кэше. Если срок действия истек, используйте токен Refresh для получения последних токенов Access и ID, а также кешируйте токены и снова истекайте.

Если вы используете один из наших высокоуровневых SDK дляAndroid, IOS изJavaScriptSDK управляет всем этим для вас.

 Rob Van Pamel11 дек. 2017 г., 20:22
Привет, вы можете найти больше информации о том, как использовать их по этой ссылке.docs.aws.amazon.com/cognito/latest/developerguide/..., короче говоря, вызовите действие AdminInitiateAuth с токеном обновления.
 Bansal_Sneha23 нояб. 2017 г., 14:44
Привет, вы можете дать подсказку об обновлении токена id с помощью токена обновления.
 user4477607 мар. 2018 г., 01:15
@Cetan Mehta, iOS SDK (AWSCognitoIdentityProvider 2.6.7) не обновляет токен автоматически, вот мой пост на SOstackoverflow.com/q/49142054/2534233
 David22 мар. 2018 г., 16:15
@ user44776 мне удалось решить эту проблему: см. мой ответ здесь:stackoverflow.com/questions/48887594/...

как использовать их по этой ссылке.http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html.

Чтобы использовать токен обновления для получения новых токенов, используйте API AdminInitiateAuth, передав REFRESH_TOKEN_AUTH для параметраAuthFlow и токен обновления для параметра AuthParameters с ключом "REFRESH_TOKEN". Это инициирует процесс обновления токена на сервере Amazon Cognito и возвращает новый идентификатор и токены доступа.

Вкратце, вызовите действие AdminInitiateAuth с токеном обновления. Посмотрите на SDK вашего языка разработки, который вы предпочитаете.

х пулов Amazon Cognito. Это будет проверять каждый шлюз API. Вы можете найти больше информации здесь.

Интеграция пользовательских пулов Amazon Cognito с API-шлюзом

Ваш ответ на вопрос