AWS Cognito托管UI并防止并发用户会话

时间:2019-01-07 12:24:46

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

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

  1. John Doe打开我们的网站,单击“登录”
  2. 他的浏览器导航到隐身托管的用户界面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. 假设约翰回到了第一台PC并直接打开Cognito托管的用户界面/login

问题 Cognito仍显示John已登录,并且不会询问他的凭据 sign-in-as-etruskas-gmail

所需结果 Cognito应该询问John的证书。我该如何实现?

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

2 个答案:

答案 0 :(得分:1)

使用当前设计的Hosted UI将无法获得所需的结果。 为了获得理想的登出结果,您需要创建一个自定义的网络/移动应用程序,并相应地利用LOGOUT OAuth 2.0端点和GlobalSignOut API。

答案 1 :(得分:-1)

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