如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?

Posted

技术标签:

【中文标题】如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?【英文标题】:How can I cache ID tokens from cognito for subsequent hits to API gateway? 【发布时间】:2019-07-04 14:30:07 【问题描述】:

如何在 AWS 中实现这个场景?

用户点击 API 网关中的 API 端点,Cognito 用于验证。用户将访问 id(Cognito 验证成功后)传递给 API 网关,然后访问令牌与 id 令牌交换后,可以将 id 令牌缓存在 API 网关或 ElastiCache 中以供后续 API 命中,以避免每个令牌交换的开销打电话?

【问题讨论】:

【参考方案1】:

一些事情:

那么一旦访问令牌与 id 令牌交换,

这是不正确的。通过身份验证,您将获得 id 令牌、访问令牌和刷新令牌。

id token 是否可以缓存在 API 网关中

避免代币交换的开销

缓存智能必须内置在您的应用程序代码中。 Cognito,将识别令牌,因为它生成它(令牌有过期时间)。每次都没有交换令牌,只有传递令牌(id/access)。一旦这些 id/access 令牌过期,您可以使用刷新令牌来获取新的 id/access 令牌。所以这将只是一个小时一个电话。

【讨论】:

以上是关于如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?的主要内容,如果未能解决你的问题,请参考以下文章

如何从通过 Google/Federated Login 登录的 AWS Cognito 检索 id 令牌

Cognito 用户池:如何使用刷新令牌刷新访问令牌

ASP.NET Core AWS Cognito JWT

对来自多个来源(例如 Cognito 和 Azure)的令牌进行身份验证

为啥我的来自 Amazon Cognito 的 JWT 令牌具有无效签名?

在预认证用户的情况下如何使用 amazon cognito 获取刷新令牌