【问题标题】:AWS Cognito hosted-UI and preventing concurrent user sessionsAWS Cognito 托管 UI 和防止并发用户会话
【发布时间】:2019-06-02 02:53:00
【问题描述】:

我们的网站阻止并发用户会话。用户只能在 1 个设备/浏览器上同时激活他们的会话。今天,我们将切换到 AWS Cognito 用户池作为身份验证提供商。 Cognito 托管 UI 用于登录。如何防止 Cognito 上的并发用户会话?

  1. John Doe 打开我们的网站,点击登录
  2. 他的浏览器导航到 cognito 托管 UI https://save-ca-dev.auth.us-east-2.amazoncognito.com/login?redirect_uri=http://localhost:3000/user_sessions&response_type=code&client_id=4hlhf1cvm18lkst3dm8ru8oc73
  3. John 输入他的凭据,点击登录
  4. 他被重定向回我们的网站。他已成功登录
  5. John Doe 在另一台 PC 上打开我们的网站。
  6. 重复登录过程。他已在另一台 PC 上成功登录。
  7. 在第二次登录时,我们的网站使第一个用户会话无效如果他尝试在第一台 PC 上工作 - 他将成为匿名用户。
  8. 假设 John 回到第一台 PC 并直接打开 Cognito 托管的 UI /login

问题 Cognito 仍将 John 显示为已登录,并且不会询问他的凭据

想要的结果 Cognito 应该询问 John 的凭据。我怎么能做到这一点?

我尝试打开 Cognito 设备跟踪和记忆,看来我可以使用 ForgetDevice API。但是所有文档都倾向于移动设备。适合PC浏览器吗?此外,设备跟踪需要生成设备凭据。

【问题讨论】:

    标签: amazon-web-services authentication amazon-cognito


    【解决方案1】:

    使用当前设计的托管 UI 无法获得所需的结果。 要获得所需的注销结果,您需要创建一个自定义 Web/移动应用程序并相应地使用 LOGOUT OAuth 2.0 端点和 GlobalSignOut API。

    【讨论】:

      【解决方案2】:

      当您的网站使会话无效时,您也必须从 cognito 托管的 UI 中注销。 https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html

      【讨论】:

      • 在这种情况下,用户将从两台 PC 上注销。这是不希望的行为。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 2020-05-25
      • 2012-11-26
      相关资源
      最近更新 更多