移动设备单点登录如何实现?

J2EE 码拜 9年前 (2015-04-18) 1361次浏览 0个评论

apk 客户端,怎么保证一个账号只能在一台设备上登录?

当 A手机登录 user1账号,B手机再登录user1账号时,将A手机的登录状态挤掉!

如何实现?

移动设备的单点登录解决方案

移动设备单点登录如何实现?
10分
把A的session/cookie干掉
移动设备单点登录如何实现?
引用 1 楼 huxiweng 的回复:

把A的session/cookie干掉

服务端如何操作?需要监控吗?

客户端如何操作?需要做个定时器吗?还是推送

移动设备单点登录如何实现?
10分
引用 2 楼 huahuagongzi9999 的回复:
Quote: 引用 1 楼 huxiweng 的回复:

把A的session/cookie干掉

服务端如何操作?需要监控吗?

客户端如何操作?需要做个定时器吗?还是推送

当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可

移动设备单点登录如何实现?
引用 3 楼 huxiweng 的回复:
Quote: 引用 2 楼 huahuagongzi9999 的回复:
Quote: 引用 1 楼 huxiweng 的回复:

把A的session/cookie干掉

服务端如何操作?需要监控吗?

客户端如何操作?需要做个定时器吗?还是推送

当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可

但是 session 是有有效时间的

移动设备单点登录如何实现?
10分
这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
移动设备单点登录如何实现?
5分
引用 5 楼 ghw554557313 的回复:

这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
推荐用websocket,tomcat7有实现的demo,可以参考一下
websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!

ios…

移动设备单点登录如何实现?
5分
既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线
移动设备单点登录如何实现?
引用 5 楼 ghw554557313 的回复:

这个功能我前几天刚用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进行推送被迫下线的通知的

移动设备单点登录如何实现?
引用 7 楼 ygycomon 的回复:

既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线

我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统

移动设备单点登录如何实现?
引用 9 楼 huahuagongzi9999 的回复:
Quote: 引用 7 楼 ygycomon 的回复:

既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线

我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统

比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线

这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用

移动设备单点登录如何实现?
引用 10 楼 ygycomon 的回复:
Quote: 引用 9 楼 huahuagongzi9999 的回复:
Quote: 引用 7 楼 ygycomon 的回复:

既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线

我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统

比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线

这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用

还是得用到session吗?

移动设备单点登录如何实现?
引用 8 楼 huahuagongzi9999 的回复:
Quote: 引用 5 楼 ghw554557313 的回复:

这个功能我前几天刚用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是在后台把不同客户端的访问一次性进行绑定,维持连接
如果一方发生变化,另一方立马会做出改变
试试吧

移动设备单点登录如何实现?
引用 11 楼 huahuagongzi9999 的回复:
Quote: 引用 10 楼 ygycomon 的回复:
Quote: 引用 9 楼 huahuagongzi9999 的回复:
Quote: 引用 7 楼 ygycomon 的回复:

既然是客户端,自己实现一个推送就好了,检查到有重复登录的情况,就把通知之前登录的设备,强制用户下线

我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
现在是想找一个比较好的实现单点登录的方式,
保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统

比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线

这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用

还是得用到session吗?

session是web端的东西,你一个android客户端,是cs结构,哪来的session?

移动设备单点登录如何实现?
引用 12 楼 ghw554557313 的回复:
Quote: 引用 8 楼 huahuagongzi9999 的回复:
Quote: 引用 5 楼 ghw554557313 的回复:

这个功能我前几天刚用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和一个唯一标示 加到数据库 利用过滤器 所有请求都调用 方法   主要检查是否登录,  登录就返回已登录….
移动设备单点登录如何实现?
引用 15 楼 s5028360 的回复:

使用struts2的过滤啊….登录的时候把session  id和一个唯一标示 加到数据库 利用过滤器 所有请求都调用 方法   主要检查是否登录,  登录就返回已登录….

没使用struts,只是用了springMVC +hibernate

移动设备单点登录如何实现?
楼主有解决方案吗,最近也在研究这方面内容

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明移动设备单点登录如何实现?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!