AWS Cognito - 如何让 idToken 永远活着?

Posted

技术标签:

【中文标题】AWS Cognito - 如何让 idToken 永远活着?【英文标题】:AWS Cognito - How to keep idToken alive forever? 【发布时间】:2021-10-21 20:23:17 【问题描述】:

当用户通过身份验证时,AWS Cognito 提供三个令牌 - idToken、accessToken 和 refreshToken。

AWS Cognito 配置只允许 idToken 最长 24 小时的到期时间,见下图。

现在,如果我们看看像 Facebook 这样的应用程序,它们永远不会自动使用户登录失效。但在我们的例子中,用户需要每 24 小时登录一次。

问题:我们如何才能使用 refreshToken 或其他东西使 idToken 永远活着?还请指导我,以防我需要在服务器端执行此操作,我能做的最好的事情是确保及时刷新所有 idToken。

【问题讨论】:

【参考方案1】:

您不能永远保留 ID 令牌。正如您自己注意到的,ID 令牌的最长有效时间是 24 小时。您实际上无法更改此配置。

可能有解决办法,但您需要使用刷新令牌不断刷新 ID 令牌。刷新令牌可以配置为 10 年后过期。您所要做的就是在每次看到 ID 令牌过期时继续使用它。如果您使用的是 SDK,它通常会为您完成。您只需唱一次,SDK 就会不断刷新 ID 令牌。

请记住,每次使用刷新令牌时,您都会获得一个新的 ID 令牌(以及访问令牌)。它不会更新原始令牌的有效性。

【讨论】:

以上是关于AWS Cognito - 如何让 idToken 永远活着?的主要内容,如果未能解决你的问题,请参考以下文章

用户注册后如何在 aws cognito 中自动验证电子邮件。稍后状态后在 Cognito 中验证电子邮件

如何继续使用适用于 AWS Cognito 的 AD FS SAML?

AWS + Serverless - 如何获取 cognito 用户池生成的密钥

AWS Lambda、API 网关和 Cognito:如何在 lambda 函数中获取身份对象?

如何从 AWS cognito 授权代码获取访问和刷新令牌

如何在 Go 中验证来自 AWS Cognito 的 JWT 令牌?