session覆盖问题。
在开源,csdn.baidu,里面找到一些相似的问题,但是他们都是用户一个需求【要求在一个浏览器中登录两个账户】,
我现在的问题是想避免这种情况发生:在同一个浏览器中,一个用户登录了之后,当在新标签页中登录另外一个用户时,怎么能让第二个用户不能登陆然后给用户一个提示,提示已经有用户登录,这种情况有解决方法么
新手,求老司机发车
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(21)
我觉得,你可以用cookies来解决这个问题。
第二个用户登录是,检查cookies的值来判断是否有用户已经在其他标签页登录了。
@张广淮 回复
@张广淮 : 会自动登录的呀,不存在输入账号密码的问题
好像我说的就是在同一个浏览器下打开两个新标签页
回复
我的就是访问登陆页面,自动登陆。并没有显示登陆页面的内容。
回复
@张广淮 : 你第二个标签页打开就是登录页还能显示,就有问题,应该检测到已经登录之后就跳走,而不是还能打开登录页。
现在现实情况就是第二个标签页打开的就是登录页,然后输入第二个用户【此时第一个用户在系统登录中】,然后导致第二个用户串到第一个用户去了,
不同标签也是同一个浏览器吧?打开两个浏览器才会出现你说的效果,360是这样的,你们的不是?
回复
@张广淮 : 同一浏览器的两个标签页session/cookie是同共享的,你在新标签页打开osc难道就不是你这个登录用户了吗
已登录用户肯定不会再访问登录页了。现在是在同一浏览器中、在两个标签页中不能登陆两个用户,
其实没必要用websocket, 存sessionid和用户id到内存表中, 同一用户登录后面一个用户session覆盖前一个。然后判断
回复
@leo108 : 那怎么设置已登录用户不能访问登录页,判断session是否有值存在进行判断么
不允许已登录用户访问登录页不就行了
第一个标签页是一个用户,新标签页是另外一个用户,两个不同的用户
同一个浏览器中,一个用户登录了之后,当在新标签页中登录另外一个用户时,第二个用户本身就登录状态。难道你说的是不同帐号?
自己实现session的管理
可以自定义认证 不一定非得使用session
其实这种情况基本是不会发生的,但是偏偏就发生了这种情况。我们不可能和用户说session被覆盖啥的,用户就觉得你系统有问题。毕竟他们不是这行业的,我们也不能要求客户理解这些。所以想寻求一个比较好的方法解决
跟我的提问差不多啊,现在也没有得到可以解决的方案
固定sessionid。那如果我把第一个用户所在页面退出之后,在登录另外一个用户【如果没清理浏览器历史纪录】,好像他们的sessionid是同一个,这样好像有点行不通。
回复
@张广淮 : session的内容变了啊. 重新登录, 重新写入就行了.
固定sessionid就行了啊... 况且你这种情况, 没必要用sesion, 直接数据库保存不更好?