关于登录限制的难题。求各位大侠给点思路,必结分

womendege0 2012-09-19 08:03:05
需求:
当前电脑只能存在一个账户,不能登录多个账户。
我有考虑session来解决,但多浏览器就不给力了。
另外考虑监听session,保存IP到数据库,如果出现非法关闭(直接关掉浏览器),等session过期删掉该数据。
...全文
191 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightyq 2012-09-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
需求:
当前电脑只能存在一个账户,不能登录多个账户。
我有考虑session来解决,但多浏览器就不给力了。
另外考虑监听session,保存IP到数据库,如果出现非法关闭(直接关掉浏览器),等session过期删掉该数据。
[/Quote]

简单的方式,可以为用户表设一个字段,做为登陆后的标志位。
比如,当用户登陆,该字段置为1。下次再登陆,发现该字段为1则不允许登陆。(当然也只是一种思路,假如有户关闭浏览器甚至关闭浏览器进程,没办法把该标志位置0)

所以可以采取第二次登陆即把第一次登陆挤掉的方式。
yuanfei213 2012-09-22
  • 打赏
  • 举报
回复
1.如果楼主是想某个账号同一时刻只能有一个节点在线,可以使用spring security
2.如果楼主是想某台电脑同一时刻只能登陆一个账号,可以数据库中专门建张表记录当前在线用户的客户端IP,再简单判断下
sky_08_06_02 2012-09-20
  • 打赏
  • 举报
回复
1.始终用新的踢掉旧的登录和QQ一样
2.不用1方案的话,那解决非法关闭:就在数据库里记录下登录的时间,下次登录超过固定时间段,直接踢掉
MiceRice 2012-09-19
  • 打赏
  • 举报
回复
这种建议非常坑爹。。。而且没啥必要性。

非法关闭就等Session超时好了,有啥问题呢?

你要先确立规则,只要是新登录的踢掉旧登录的Session就行了。
womendege0 2012-09-19
  • 打赏
  • 举报
回复
有朋友建议我弄个定时任务。 隔分钟请求数据库 没有就直接杀掉数据, 用这种方式来处理非法关闭。
如果服务器挂了。。。搞个数据库定时器。。没反应 全杀了。。。额 好晕
MiceRice 2012-09-19
  • 打赏
  • 举报
回复
如果是单机环境,很容易解决:找个类统一管理下就行了,比如:
static Map<IP, 账户> loginedAccount;
如果是集群环境,就比较麻烦,要用数据库或者独立缓存服务。
a234152738 2012-09-19
  • 打赏
  • 举报
回复
你的意思就是像QQ那种 如果登陆两次 此前一次会被挤掉吧 。。。。
a8509190 2012-09-19
  • 打赏
  • 举报
回复
application存不可以么?
womendege0 2012-09-19
  • 打赏
  • 举报
回复
我描述的不够详细。如果有感兴趣的。可以Q我。谢谢。或者留QQ给我
624380857

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧