同一账号多设备同时登录

多端同时登录

1.概述

session多端登录,就是保持session的一致性。由于session是唯一的,所以要保持session的唯一性,可以将session存放在一个地方,到时候大家取的时候,统一从一个地方取session,这样就保持了session的一致。

2.实现session的方法

其实就是将session存放在一个地方,大家存取就好了。至于其他都是附加的,原理就是酱紫。一般实现的方法有:

1)nfs文件共享系统,让不同项目访问同一个共享的文件。

2)存放在mysql。

3)存放在内存数据库,比如redis,memcache等。

4)基于cookie的共享。这个需要域名统一。

3.关于redis的session共享,其他类似

1)php.ini里面存放得有session的存放地址,可以将session的地址改成redis存放session的地址。session.save_path
但是一般这种服务器端会有访问控制。所以可以参考第二种方法

2)重写session,通过php代码更改session的存放路径什么的。php有相关的session重写的类。

同一浏览器,登录多个用户

背景:在同一个浏览器里登录两个用户,第二个用户会把第一个用户的信息覆盖掉(使用session获取用户信息)

原因:存入session的key是同一个

解决方案:

在后台将登陆信息放入session时,创建不同的key。session.setAttribute(“用户名+key”, user);

即时通讯系统中如何实现:多端(PC、mobile)同时在线

参考:http://blog.csdn.net/zhuweisky/article/details/50553427

多终端同时登录,当一个终端修改密码后,其它终端如何处理?

目前有一个项目,同时允许Web端,Moible端,Pad端登录。当同时登录后,现在Web端修改了用户密码后,按道理说Mobile端及Pad端再操作时用户身份要立即失效,必须退出并重新登录验证后才有效。
如何实现通知其它终端立即失效呢?

如果是移动客户端的话,我觉得可以主动推送通知。 网页端的么,想了一个方案1 .把所有已登录的用户保存在一块内存中,用户的每个操作都要另外检验这个内存中是否有该用户的数据,如果没有,就强制重新登录。当有一个用户修改了密码以后,就对当前所有登录这个用户名的账号清掉他的数据,此时,他再操作就要求重新登录了。