AWS Cognito с провайдером Google, как обработать ответ от Google?

Поэтому я использую пользовательские пулы cognito с Google в качестве поставщика удостоверений. Я все настроил и отправляю данные в google, который перенаправляет обратно на конечную точку авторизации amazon, которая затем перенаправляет обратно в мое приложение со следующими параметрами в URL:

AccessToken
ExpiresIn
IdToken
TokenType

Теперь я понятия не имею, как их использовать для создания "сеанса" Cognito, который входит в рабочий процесс API javascript и просто становится автоматическим (отправка, получение и обновление токена).

Как мне этого добиться?

1 ответ

Использование IDToken для аутентификации вашего API

После аутентификации вы можете кэшировать IDToken в браузере и использовать его, когда авторизованный пользователь запрашивает вызовы API из вашего веб-приложения или мобильного приложения. Затем вы можете проверять токен в ваших конечных точках API для каждого запроса.

Проверка IDToken

Для получения дополнительной информации об использовании токенов и проверке их на конечных точках API см. Документацию AWS по использованию токенов с пулами пользователей. В AWS появилась новая библиотека под названием aws-ampify, которая упрощает некоторые реализации. Если вы используете AWS API Gateway для своего API, вы можете использовать специальную лямбда-функцию авторизатора для проверки.

Хранение IDToken и безопасности

Кроме того, IDToken - это токен без сохранения состояния, что означает, что у него нет сеанса, связанного с AWS Cognito. Это означает, что вы не можете отозвать его после выдачи. Поэтому важно, чтобы срок его действия был коротким.

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

Примечание. Хранение IDToken в браузере позволяет выбрать несколько доступных вариантов хранения (например, Cookies, LocalStorage). Тем не менее, я не собираюсь комментировать последствия для безопасности, так как это само по себе долгое обсуждение, в котором все еще есть сомнительные области. Стандартный подход, доступный в настоящее время, состоит в том, чтобы установить Cookie на стороне сервера и внедрить CSRF. Это будет сложно реализовать, если вы не используете IDToken только для инициации аутентификации и использования сеанса вместо повторяющихся запросов.

Другие вопросы по тегам