为了账号安全,请及时绑定邮箱和手机立即绑定

在java里面如何实现同一用户不能同时异地登录

在java里面如何实现同一用户不能同时异地登录

鸿蒙传说 2018-07-13 15:15:36
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

Session的机制(为了安全)决定了Session A不能获得Session B的信息,即Session之间是互相隔离的.

你可以在Login的时候,将当前登录的用户信息保存一份到Application中.
大致流程如下:
在Application放一个HashMap<String [userName],String[SessionId]> logins = new....
登录的时候 logins.put(userName,sessionId);
权限校验的时候
String sessionId = logins.get(userName);
if(request.getSession().getSessionId().equals(sessionId)){
//允许继续操作
}else{
//session.inValidate();//取消当前session的有效期.这个方法名我记不太清楚了.
//清空session里保存的内容,退出登录,返回到登录页面.
}

退出的时候,
logins.remove(userName);

大致流程如上,你可以仔细参考一下


查看完整回答
反对 回复 2018-07-25
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

最简单的方法,是设置单点登录即可

查看完整回答
反对 回复 2018-07-25
  • 2 回答
  • 0 关注
  • 1459 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信