apk 客户端,怎么保证一个账号只能在一台设备上登录?
当 A手机登录 user1账号,B手机再登录user1账号时,将A手机的登录状态挤掉!
如何实现?
移动设备的单点登录解决方案
|
10分 |
把A的session/cookie干掉
|
|
服务端如何操作?需要监控吗?
客户端如何操作?需要做个定时器吗?还是推送
|
10分 |
当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可
|
|
把A的session/cookie干掉
服务端如何操作?需要监控吗?
客户端如何操作?需要做个定时器吗?还是推送
当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可
但是 session 是有有效时间的
|
10分 |
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
|
5分 |
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
ios…
|
5分 |
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
|
|
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
我的思路是:
用户登录的时候在session中存入userid和imei,
比如:
userId:10000
现在有两台手机,分别为:
A 设备 imei 111111111111111
B 设备 imei 2222222222222222
当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的
|
|
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统
|
|
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统
比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线
这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用
|
|
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统
比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线
这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用
还是得用到session吗?
|
|
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
我的思路是:
用户登录的时候在session中存入userid和imei,
比如:
userId:10000
现在有两台手机,分别为:
A 设备 imei 111111111111111
B 设备 imei 2222222222222222
当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的
是的,不管你用的session保存还是ThreadLocal方式在后台做存储,都可以用websocket实现推送
websocket是在后台把不同客户端的访问一次性进行绑定,维持连接
如果一方发生变化,另一方立马会做出改变
试试吧
|
|
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统
比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线
这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用
还是得用到session吗?
session是web端的东西,你一个android客户端,是cs结构,哪来的session?
|
|
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
我的思路是:
用户登录的时候在session中存入userid和imei,
比如:
userId:10000
现在有两台手机,分别为:
A 设备 imei 111111111111111
B 设备 imei 2222222222222222
当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的
是的,不管你用的session保存还是ThreadLocal方式在后台做存储,都可以用websocket实现推送
websocket是在后台把不同客户端的访问一次性进行绑定,维持连接
如果一方发生变化,另一方立马会做出改变
试试吧
推送我可以用百度云推送,我们的应用里面IM有用到百度云推
|
|
使用struts2的过滤啊….登录的时候把session id和一个唯一标示 加到数据库 利用过滤器 所有请求都调用 方法 主要检查是否登录, 登录就返回已登录….
|
|
使用struts2的过滤啊….登录的时候把session id和一个唯一标示 加到数据库 利用过滤器 所有请求都调用 方法 主要检查是否登录, 登录就返回已登录….
没使用struts,只是用了springMVC +hibernate
|
|
楼主有解决方案吗,最近也在研究这方面内容
|