aws cognito 在注销时使令牌无效

问题描述 投票:0回答:2

我无法弄清楚这个问题,但我知道 JWT 令牌是独立的,有自己的过期时间。通常,黑名单可能包含“过期”令牌,并阻止访问其中列出的令牌的路由。

我想知道,如果使用 aws cognito 并调用注销端点,实际上是否会将 aws 端的 JWT 令牌列入黑名单?有一个访问令牌和一个刷新令牌,因此两者都会失效,还是用户仍然可以使用该令牌登录,直到达到令牌中的过期时间?

amazon-web-services amazon-cognito
2个回答
3
投票

不,不是。调用 LogOut 端点将使您与托管 UI/Oauth 端点进行的任何会话无效。

另一种选择是调用 globalSignOut [1],这将使所有用户访问和刷新令牌(用于 Cognito API)无效。

但是,JWT 令牌仍然有效,并且正如您所提到的,它是独立的。没有内置的令牌黑名单可供您自己的服务器以可扩展的方式检查。如果需要,您需要自己实现这一点。

[1] https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html


0
投票
  • 从 Cognito 注销用户并不会使该用户无效 Cognito 颁发的访问令牌。最后颁发的访问令牌 Cognito 在 Cognito 的系统中仍然有效。
  • 有一个 撤销令牌 Cognito提供的API端点,但这需要ClientID, 用于调用的ClientSecret和Token。如果您的应用程序没有 在您的 Cognito 池中使用 ClientSecret,那么这将不起作用。
  • 我发现这个注销选项可以在这个场景中使用 - 重定向 用户访问 cognito 注销 URL,如下 -

https://COGNITO_DOMAIN/logout?client_id=APP_CLIENT_ID"&logout_uri=SIGNOUT_URL

  • 将用户重定向到 Cognito 注销 URL 执行以下操作 -
  • 它使当前用户会话失效;
  • 使所有已发行的代币失效;
  • 下次用户登录将被视为新登录,因此将被要求重新进行身份验证(通过 Google/Azure 等)
  • :/注销 端点是重定向端点。它注销用户并 重定向到您的应用程序客户端的授权注销 URL, 或到 /login 端点。 AWS 文档说 - “注销 端点是用于交互式用户会话的前端 Web 应用程序 与您的客户。您的应用程序必须调用此 UI 和其他托管 UI 用户浏览器中的端点。”含义 - 只能使用 通过浏览器在前端。如果 SIGNOUT_URL 的值为 1 您的应用程序客户端 Amazon Cognito 允许的注销 URL 的数量 将用户重定向到该 URL。
© www.soinside.com 2019 - 2024. All rights reserved.