Security 检测到多会话时的用户体验?

Security 检测到多会话时的用户体验?,security,session,user-experience,Security,Session,User Experience,我不确定在这个用例中最好的体验应该是什么: 用户X从设备A登录到他的帐户。 用户Y(或用户X)从设备B登录到X的帐户。 系统检测到已登录帐户从其他设备登录 现在系统将做什么? -在不让设备B用户知道的情况下将第一个人踢出去? -在两台设备上都显示警告? -询问两个设备用户一个秘密Q,以知道谁是对的,并允许那个家伙进来? -还有别的吗 最终,只有1台设备可以登录到该帐户。虽然我不知道如何处理这个问题:如果用户从Firefox登录到帐户,然后打开Internet explorer并登录,那么IP/设

我不确定在这个用例中最好的体验应该是什么: 用户X从设备A登录到他的帐户。 用户Y(或用户X)从设备B登录到X的帐户。 系统检测到已登录帐户从其他设备登录

现在系统将做什么?
-在不让设备B用户知道的情况下将第一个人踢出去?
-在两台设备上都显示警告?
-询问两个设备用户一个秘密Q,以知道谁是对的,并允许那个家伙进来?
-还有别的吗


最终,只有1台设备可以登录到该帐户。虽然我不知道如何处理这个问题:如果用户从Firefox登录到帐户,然后打开Internet explorer并登录,那么IP/设备是相同的,那么如何捕获它呢?

对于最后一个问题,如果您使用的任何框架都支持会话级存储和应用程序级存储,那么当用户登录时,您可以将他们的“登录状态”作为布尔值存储在会话中,并在应用程序存储中保存用户名列表。如果用户尝试登录,并且存在于应用程序存储中,但不存在于会话存储中,则这是来自不同浏览器的重复登录。但是,在用户没有显式注销时处理会话结束是一项挑战

至于用户体验,这实际上取决于您的目的。在大多数情况下,我希望能够毫无问题地运行并发会话,因此如果不能,我可能会感到不安。另一个选项是通知设备B用户已经有一个会话正在运行,他必须在继续之前关闭设备a上的会话。这样,如果同一用户同时在这两个服务器上,他就拥有最大的控制权。如果他们是不同的用户,并且设备A拥有有效的帐户,他将继续工作而不中断。如果设备B拥有有效用户,他知道他的帐户已被泄露。这可能是他的错误,因为他不小心输入了密码,他需要得到进一步的帮助