首页新闻找找看学习计划

BS开发如何一个帐户只能一个点登录?

1
[待解决问题]

BS开发,我想实现一个帐户只能一个点登录,后登录会把之前的帐户注销;

就好比QQ

如何实现?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2011-12-12 09:33
< >
分享
所有回答(4)
0

只搞一个登录按钮就可以了

悟行 | 园豆:12238 (专家六级) | 2011-12-12 10:34
0

因为HTTP是无状态的,你不知道一个用户登录了之后,是不是已经把浏览器关了之类的。所以非常精确的定位一个用户是否在登录状态是无法做到的,一般都会有延迟。有延迟的做法就是把你的每一个页面都加上同样的js,这段js每x秒会请求服务器,告诉服务器用户A在B这个IP上登录。你的服务器会一直记录这个状态。如果这个时候用户A在C这个IP上又登录了,那么服务器每过X秒会得到类似的请求,就可以知道用户A在两个IP上登录了,就可以采取相关的措施。

水牛刀刀 | 园豆:6350 (大侠五级) | 2011-12-12 10:41
0

用户管理一般是用session实现的。 只要讲Session保存到数据库中,同时再用户登陆的时候记录SessionID , 如果重新登陆,则 先在数据库中删除 Session表中相应的记录,然后再记录 新SessionID 。  因为第一次登陆的session已经被删除了,所以是无法使用的。 

另外还有一个办法就是 。在用户表里边记录登陆时的 SessionID 每次访问的时候 判断一下用户表中的sessionId 和当前会话sessionID  是否一致,如果不一致,则提示已经被重新登录,不能继续使用。。   这样做的优点是 :可以给原用户一个提醒,而且不用修改Session 。 缺点是每次请求都要重新访问用户表,对性能有影响。

对于Session 的使用 可以参考这篇文章。

http://www.cnblogs.com/luhaiyan/archive/2011/04/28/2046610.html

 

魏生斌 | 园豆:236 (菜鸟二级) | 2011-12-12 12:24
0

从网上看看SSO的实现方法吧。

燕伟 | 园豆:210 (菜鸟二级) | 2011-12-15 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册