session覆盖问题。

张广淮 发布于 2017/01/12 09:28
阅读 1K+
收藏 0

在开源,csdn.baidu,里面找到一些相似的问题,但是他们都是用户一个需求【要求在一个浏览器中登录两个账户】,

我现在的问题是想避免这种情况发生:在同一个浏览器中,一个用户登录了之后,当在新标签页中登录另外一个用户时,怎么能让第二个用户不能登陆然后给用户一个提示,提示已经有用户登录,这种情况有解决方法么

新手,求老司机发车

加载中
0
Tuesday
Tuesday
固定sessionid就行了啊... 况且你这种情况, 没必要用sesion,  直接数据库保存不更好? 
Tuesday
Tuesday
回复 @张广淮 : session的内容变了啊. 重新登录, 重新写入就行了.
张广淮
张广淮
固定sessionid。那如果我把第一个用户所在页面退出之后,在登录另外一个用户【如果没清理浏览器历史纪录】,好像他们的sessionid是同一个,这样好像有点行不通。
0
随风而浮沉
随风而浮沉
跟我的提问差不多啊,现在也没有得到可以解决的方案
张广淮
张广淮
其实这种情况基本是不会发生的,但是偏偏就发生了这种情况。我们不可能和用户说session被覆盖啥的,用户就觉得你系统有问题。毕竟他们不是这行业的,我们也不能要求客户理解这些。所以想寻求一个比较好的方法解决
0
Xjk
Xjk
可以自定义认证 不一定非得使用session
0
Kit_lee
Kit_lee
自己实现session的管理
0
一只小桃子
一只小桃子
同一个浏览器中,一个用户登录了之后,当在新标签页中登录另外一个用户时,第二个用户本身就登录状态。难道你说的是不同帐号?
张广淮
张广淮
第一个标签页是一个用户,新标签页是另外一个用户,两个不同的用户
0
leo108
leo108
不允许已登录用户访问登录页不就行了
张广淮
张广淮
回复 @leo108 : 那怎么设置已登录用户不能访问登录页,判断session是否有值存在进行判断么
leo108
leo108
回复 @张广淮 : 同一浏览器的两个标签页session/cookie是同共享的,你在新标签页打开osc难道就不是你这个登录用户了吗
张广淮
张广淮
已登录用户肯定不会再访问登录页了。现在是在同一浏览器中、在两个标签页中不能登陆两个用户,
0
mickelfeng
mickelfeng
其实没必要用websocket, 存sessionid和用户id到内存表中, 同一用户登录后面一个用户session覆盖前一个。然后判断
0
bossin2014
bossin2014
感觉你这个完全没必要啊。如果一个账号已经登陆。再打开一个标签,访问登陆页面,会自动登陆的。除非两个标签都打开登陆页面,然后再登陆,才行啊,但这样子好傻啊
bossin2014
bossin2014
回复 @OSC首席键客 : 我的就是访问登陆页面,自动登陆。并没有显示登陆页面的内容。
OSC首席键客
OSC首席键客
回复 @张广淮 : 你第二个标签页打开就是登录页还能显示,就有问题,应该检测到已经登录之后就跳走,而不是还能打开登录页。
bossin2014
bossin2014
回复 @张广淮 : 有用户登陆了,再访问登陆页面都该自动登陆的,所以你拦截器有问题;我同一个浏览器同时登陆两个账号不会出现错乱,所以还是你代码有问题,因此先解决代码吧。按你提的问题又是新的需求了。
张广淮
张广淮
现在现实情况就是第二个标签页打开的就是登录页,然后输入第二个用户【此时第一个用户在系统登录中】,然后导致第二个用户串到第一个用户去了,
0
554330833a
554330833a
不同标签也是同一个浏览器吧?打开两个浏览器才会出现你说的效果,360是这样的,你们的不是?
554330833a
554330833a
@张广淮 回复@张广淮 : 会自动登录的呀,不存在输入账号密码的问题
张广淮
张广淮
好像我说的就是在同一个浏览器下打开两个新标签页
0
JustForFly
JustForFly

我觉得,你可以用cookies来解决这个问题。

第二个用户登录是,检查cookies的值来判断是否有用户已经在其他标签页登录了。

返回顶部
顶部