在用QQ的过程中我们如果你的账号在另外一台手机上面登录,这是腾讯后台会提醒你异地登录,可能你的账号被盗了,然后你手机上得QQ就会被退出登录,这个时候你就需要重新登录修改密码,以确保账号的安全。那这种被挤下线的行为其实很普遍,我接触过的每个项目几乎都用到过,就是用session来实现,应为每个设备的session不一样,服务端就根据你上传来的session来判断是不是同一台设备登录。

首先,登录的时候,我们会将用户的信息,还有session存起来,直接看代码(php实现):

public function setUserToSessin($user){

$user_key = "user_"+$user['id'];

$session_key = $this->getCacheSessionKey('user');

$old_session_key = $this->getCacheSessionKey('user',Cache:get($user_key,null));

if($old_session_key && strcmp($old_session_key,$session_key) !== 0){

Cache:forget($old_session_key);

}

Cache::put($user_key,Session::getId(),2147483647);

Cache::put($session_key,$user,2147483647);

}

private function getCacheSessionKey($key,$session_id=null){

$session_id = $session_id ? $session_id : Session:getId();

$session_key = sprintf('%s_session_%s',$key,$session_id);

return $session_key;

}

public function getUserFromSession(){

$session_key = $this->getCacheSessionKey('user');

$user = Cache::get($session_key,null);

if(!$user){

return new UserNotLoginException;

}

return $user;

}

java 账户挤下线提示_运用session来控制用户的异地登录被挤下线情况相关推荐

  1. Springboot整合Websocket遇到的坑_websocket session不支持序列化,无法存储至redis_Websocket相关问题总结(Session共享,用户多端登录等)

    Springboot整合Websocket遇到的坑 一.使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean @Confi ...

  2. java盘盈盘亏_反映财产物资的盘盈、盘亏和毁损情况,应当设( )科目。

    [单选题]各人有各人的动机,每人的动机各不相同,要管理好企业,还要了解员工的动机,以便进行管理,这就要求管理人员进行: ( ) [判断题]领导行为理论认为,天资聪明的人应当成为领导者. [单选题]分页 ...

  3. java向硬件发送信息_如何用电脑控制手机发短信 用JAVA 通过USB口

    http://download.csdn.net/source/134522 可以去这里下载一个研究研究 ----------------------------------------------- ...

  4. 怎样监视java内存的实际使用量_几个命令教你如何监控 Node 服务的内存情况

    本文收录于 GitHub 山月行博客: shfshanyue/blog,内含我在实际工作中碰到的问题.关于业务的思考及在全栈方向上的学习 前端工程化系列 Node进阶系列 刚开始,先抛出一个问题: 你 ...

  5. java oauth sso 源码_基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践

    概 述 在前文<基于Spring Security和 JWT的权限系统设计>之中已经讨论过基于 Spring Security和 JWT的权限系统用法和实践,本文则进一步实践一下基于 Sp ...

  6. java如何无感知部署_干货!如何平稳用户无感知的完成系统重构升级

    前言 我们在实际开发系统的过程当中,很有可能会遇到需要进行系统重构升级的情况,需要重构的原因可能是之前的设计不合理,导致现在维护起来非常的困难,也有可能是现在的业务发展非常迅速,需要进行分库分表了又或 ...

  7. mysql拒绝访问root用户_设置mysql的root用户允许远程登录

    设置MySQL的root用户允许远程登录 连接数据库 [root@localhost ~]# mysql -uroot -p密码 选择mysql数据库 mysql> use mysql; 设置访 ...

  8. vsftp匿名访问目录_怎么更改vsftp匿名用户的默认登录目录/var/ftp?

    你的位置: 问答吧 -> 服务器 -> 问题详情 怎么更改vsftp匿名用户的默认登录目录/var/ftp? redhat9    vsftp匿名用户登录默认为/var/ftp 请教各位大 ...

  9. 新增公告提示功能,支持用户异地登录提醒和授权过期通知,JumpServer堡垒机v2.15.0发布

    11月1日,JumpServer开源堡垒机正式发布v2.15.0版本.在这一版本中,JumpServer新增公告提示功能,管理员可以根据不同的场景向所有用户实时发布重要通知:用户登录方面,新版本支持用 ...

最新文章

  1. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
  2. cisco switch
  3. shell 脚本 自动发送邮件
  4. Leetcode 242. 有效的字母异位词 解题思路及C++实现
  5. 关于Dictionary元素的遍历
  6. 第五十六期:IPv6只是增加了地址数量?其实真相并没有那么简单!
  7. java ee 6 源码_Java EE 6开发手册·高级篇(第4版)
  8. ClickHouse到底有什么本事呢?互联网公司如此追捧
  9. 通达信与飞狐不同函数的替代
  10. 2021-09-14联想云教室连接不上服务器解决办法
  11. 简述算法和程序的区别并举例说明
  12. 刀具寿命预测研究方法
  13. ios 关于MBProgressHUD简单实用
  14. 练习2-1 Programming in C is fun
  15. java 加密方式_Get史上最优雅的加密方式!没有之一!
  16. Chrome 开发者工具 Initiator 面板单击后看不到 JavaScript 源代码的解决方法
  17. 出现“你的Windows许可证即将过期”提示
  18. 用C语言构造康托集,洛谷——P1014 Cantor表
  19. 2.1.2 Android刘海屏适配
  20. 计算机辅助设计在环境工程中的应用,原创:试论计算机辅助设计在环境工程中的应用原稿...

热门文章

  1. 机器学习算法竞赛平台整理
  2. 解决Unity3D使用VRTK时,VR眼镜连接不上的问题
  3. 虚拟现实是计算机软件么,虚拟现实技术对于电脑软件、硬件的配置要求有哪些?...
  4. VS2017中自用部分插件的设置的翻译或功能介绍—— Viasfora设置(一)
  5. oracle分区维护操作不能与其他,ORA-14048:分区维护操作不能与其它操作组合
  6. 如何正确的理解“光速不变”
  7. SDNU-1183.纪念品分组
  8. Java在线租车系统
  9. IOS 自动化配置踩坑(一)
  10. Gartner云安全理念解读