【发布时间】:2021-06-02 06:35:08
【问题描述】:
我希望将 AWS Cognito 与多个设备(iOS、Android、Web)一起使用,并希望能够退出特定设备,例如我的手机,但不能退出我的网络帐户。我不想进行全局注销。 1. 这可以通过 AWS Cognito 实现吗? 2. 如何实现这个功能?
【问题讨论】:
标签: amazon-cognito
我希望将 AWS Cognito 与多个设备(iOS、Android、Web)一起使用,并希望能够退出特定设备,例如我的手机,但不能退出我的网络帐户。我不想进行全局注销。 1. 这可以通过 AWS Cognito 实现吗? 2. 如何实现这个功能?
【问题讨论】:
标签: amazon-cognito
是的,这个功能可以通过使用 Cognito 的LOGOUT Endpoint 来实现。示例 cURL 请求如下:
## Set constants ##
CLIENT_ID="USER_POOL_CLIENT_ID"
REDIRECT_URI="https://example.com/"
## Hit /logout endpoint ##
curl -v "https://${AUTH_DOMAIN}/logout?client_id=${CLIENT_ID}&logout_uri=${REDIRECT_URI}"
您也可以在您的移动或网络应用程序中以编程方式实现此功能。
【讨论】:
有点。最好的办法是从 cookie 中删除您的 refresh_token 和任何 id_tokens。如果您没有在设备之间共享任何这些令牌(很有可能),那么您将获得所需的大部分内容。
Cognito 真的应该有一个注销端点,它接受 refresh_token 并杀死它。如果没有这个,如果您共享令牌以供外部使用,即使在注销后也可以继续使用它们。
【讨论】:
REVOCATION Endpoint。您需要在正文中提供token,这是客户端要撤消的刷新令牌。从刷新令牌发出的访问令牌也被撤销。 docs.aws.amazon.com/cognito/latest/developerguide/…