我想了解如何在 Amazon Cognito 中使用注销端点和 GlobalSignOut API。
简短描述
Amazon Cognito 注销端点会清除浏览器中的用户会话。GlobalSignOut API 使发放给特定用户的所有访问和刷新令牌失效。
解决方法
使用注销端点注销用户
在您使用托管端点进行用户身份验证时,Amazon Cognito 会在您的浏览器中存储一个名为“cognito”的 Cookie。该 Cookie 与使用您用户群体配置的 Amazon Cognito 域关联。该 Cookie 的有效期为 1 小时。在用户在活动会话期间尝试再次登录时,Amazon Cognito 会询问用户是否要继续其现有会话。这允许用户在不提供凭证的情况下登录。如果用户选择以 example_username 身份登录按钮来使用现有会话,则 Cookie 的有效期将重置为 1 小时。
当用户在其浏览器中访问注销端点时,Amazon Cognito 会清除会话 Cookie。用户必须提供凭证才能再次登录。
在用户使用第三方身份提供者(IdP)登录时,需要执行额外的步骤。如果用户使用某个第三方 IdP 登录,则访问注销端点会清除浏览器中的“cognito”Cookie。但是,IdP 仍能保留活动会话。在清除用户的 IdP 会话时,请考虑以下信息:
使用 GlobalSignOut API 注销用户
在使用 GlobalSignOut API 时,Amazon Cognito 会撤销发放给用户的所有访问和刷新令牌。请注意,只有 Amazon Cognito 会收到令牌撤销通知。您的应用程序可能会继续接受这些令牌,直到它们过期。
您的应用程序可以同时使用 GlobalSignOut 和 AdminUserGlobalSignOut API 实现全局注销用户。在应用程序使用 REST API 进行 Amazon Cognito 用户身份验证时,您必须使用这些 API 注销用户。
在应用程序尝试使用已撤销的令牌时,会引发 Amazon Cognito 错误,说明您已撤销刷新令牌。用户必须再次登录才能获得一组新的 JSON Web 令牌(JWT)。
您可以在用户群体应用程序客户端中配置访问和 ID 令牌的过期时间。您可以将过期时间更改为 5 分钟到 24 小时之间的值。