使用刷新令牌 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用刷新令牌

您可以使用刷新令牌来检索新的 ID 令牌和访问令牌。默认情况下,刷新令牌会在您的应用程序用户登录用户池后的 30 天内过期。当您为用户池创建应用程序时,您可以将应用程序的刷新令牌过期时间设置为介于 60 分钟到 10 年之间的任何值。

适用于 iOS 的移动软件开发工具包。如果存在有效(未过期)刷新令牌,适用于 Android 的移动 SDK for Android 件开发工具包,适用于 iOS、Android 和颤振的 Amplify 功能,会自动刷新您的 ID 和访问令牌。ID 和访问令牌的剩余有效期至少为 2 分钟。如果刷新令牌已过期,您的应用程序用户必须通过再次登录用户池来重新进行身份验证。如果访问令牌和 ID 令牌的最小值设置为 5 分钟,并且您正在使用 SDK,则刷新令牌将持续刷新。要查看预期的行为,请将最少设置为 7 分钟,而不是 5 分钟。

注意

适用于 Android 的移动开发工具包提供的选项可将 ID 令牌和访问令牌的最短有效期更改为 0 到 30 分钟之间的值。请参阅setRefreshThreshold()的方法CognitoIdentityProviderClientConfig中的Amazon Mobile SDK for AndroidAPI 参考。

只要您的用户在UnusedAccountValidityDays新帐户的时间限制。

要结合使用刷新令牌与用户池 API 获取新的 ID 令牌和访问令牌,请使用 AdminInitiateAuthInitiateAuth 方法。PassREFRESH_TOKEN_AUTH(对于 )AuthFlow参数。授权参数AuthParameters,是键值映射,其中键是"REFRESH_TOKEN",该值是实际刷新令牌。Amazon Cognito 使用新的 ID 令牌和访问令牌进行响应。

注意

要更改使用 HosteDUI 登录的用户的令牌,请使用 InitiateAuthAPI操作。

撤销RefreshToken

您可以撤销刷新属于用户的令牌。有关撤消令牌的更多信息,请参阅。RevokingTokens

注意

撤消刷新令牌将撤销所有Token这些都是发布使用刷新令牌。

当您撤消用户的所有令牌时,用户可以从其当前登录的所有设备中注销,方法是使用GlobalSignOutAdminUserGlobalSignOutAPI 操作。在用户之后是退出时,以下事物发生:

  • 用户的刷新令牌无法用于为用户获取新的令牌。

  • 用户的访问令牌不能用于用户池服务。

  • 用户必须重新进行身份验证以获取新的令牌。会话 cookie 不会自动过期。作为最佳做法,应用程序应将用户重定向到注销终端节点,以强制浏览器清除会话 Cookie。

应用程序可以使用GlobalSignOutAPI 来允许单个用户自行从所有设备注销。通常情况下,应用程序会将此选项显示为一个选择,例如从所有设备注销。应用程序必须通过用户的有效、非过期、非撤消的有效访问令牌调用此方法。此方法不能用于允许一个用户注销另一个用户。

应用程序可以使用AdminUserGlobalSignOutAPI 来允许管理员从所有设备注销用户。管理员应用程序必须通过 AWS 开发人员凭证调用此方法,并传递用户池 ID 和用户的用户名作为参数。AdminUserGlobalSignOut API 可以在用户池中注销任何用户。