如何解决Angular 8和.Net核心API中的并发会话
当用户尝试登录浏览器B时,我应该显示弹出窗口到浏览器A(您正在浏览器B上登录并在浏览器A中注销,等待5秒),他应该会弹出(您正在浏览器A上登录,并且在5秒内登录浏览器B),并输入所有详细信息,例如IP地址
解决方法
您不能为此使用会话存储,因为两种浏览器将具有不同的会话。
但是,您可以将详细信息存储在数据库中。
在登录时,存储有关IP地址,浏览器字符串等的此身份的详细信息。加上您不断更新的“登录”日期和“最后看到”日期。还有一个(最初是空的)“注销”日期。
登录后,还通过检查以前存储的任何详细信息来检查该标识是否已被标记为“已登录”。您需要确定何时考虑“注销”某人-例如,在最近20分钟内未看到该用户。请记住,并非所有人都明确退出。 现在,您可以显示消息,说明用户已经在其他地方登录。
在每个请求上,您都必须更新“上次看到”的日期。而且您还需要检查“注销”日期。如果该值有效,则可以显示一条消息,指出当前会话已被其他浏览器接管(当然,请在此处注销)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。