我不确定这个用例中最佳体验应该是什么: 用户X从设备A登录到他的帐户。 用户Y(或用户X)从设备B登录X的帐户。 系统会检测来自其他设备的已登录帐户的登录信息。
现在系统会做什么? - 在不让设备B用户知道的情况下踢掉第一个人? - 在两台设备上都显示警告? - 向两位设备用户询问秘密问题,以了解谁是对的并允许该人进入? - 别的吗?
最终,只有1台设备可以登录该帐户。虽然我不知道如何处理这个:如果用户从Firefox登录帐户然后打开Internet Explorer并登录,IP /设备是相同的,那么如何捕捉到它?
答案 0 :(得分:0)
对于您的上一个问题,如果您使用的任何框架都支持会话级存储和应用程序级存储,那么当用户登录时,您可以将其“登录的”存储为布尔值会话并保存应用程序存储中的用户名列表。如果用户尝试登录,并且存在于应用程序存储中但不存在于会话存储中,则它是来自其他浏览器的重复登录。当用户没有明确注销时处理会话结束是一个挑战。
就用户体验而言,这实际上取决于您的目的。在大多数情况下,我希望能够毫无问题地运行并发会话,所以如果不能,我可能会感到不安。另一种选择是通知设备B用户已经在运行会话,并且他必须在继续之前关闭设备A上的会话。这样,如果同一个用户同时使用,则他具有最大控制权。如果他们是不同的用户,并且设备A具有有效帐户,他将继续工作而不会中断。如果设备B具有有效用户,则他知道他的帐户已被盗用。这可能是他因为密码而马虎而错,他需要得到进一步的帮助。