java 账户挤下线提示_运用session来控制用户的异地登录被挤下线情况
在用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来控制用户的异地登录被挤下线情况相关推荐
- Springboot整合Websocket遇到的坑_websocket session不支持序列化,无法存储至redis_Websocket相关问题总结(Session共享,用户多端登录等)
Springboot整合Websocket遇到的坑 一.使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean @Confi ...
- java盘盈盘亏_反映财产物资的盘盈、盘亏和毁损情况,应当设( )科目。
[单选题]各人有各人的动机,每人的动机各不相同,要管理好企业,还要了解员工的动机,以便进行管理,这就要求管理人员进行: ( ) [判断题]领导行为理论认为,天资聪明的人应当成为领导者. [单选题]分页 ...
- java向硬件发送信息_如何用电脑控制手机发短信 用JAVA 通过USB口
http://download.csdn.net/source/134522 可以去这里下载一个研究研究 ----------------------------------------------- ...
- 怎样监视java内存的实际使用量_几个命令教你如何监控 Node 服务的内存情况
本文收录于 GitHub 山月行博客: shfshanyue/blog,内含我在实际工作中碰到的问题.关于业务的思考及在全栈方向上的学习 前端工程化系列 Node进阶系列 刚开始,先抛出一个问题: 你 ...
- java oauth sso 源码_基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践
概 述 在前文<基于Spring Security和 JWT的权限系统设计>之中已经讨论过基于 Spring Security和 JWT的权限系统用法和实践,本文则进一步实践一下基于 Sp ...
- java如何无感知部署_干货!如何平稳用户无感知的完成系统重构升级
前言 我们在实际开发系统的过程当中,很有可能会遇到需要进行系统重构升级的情况,需要重构的原因可能是之前的设计不合理,导致现在维护起来非常的困难,也有可能是现在的业务发展非常迅速,需要进行分库分表了又或 ...
- mysql拒绝访问root用户_设置mysql的root用户允许远程登录
设置MySQL的root用户允许远程登录 连接数据库 [root@localhost ~]# mysql -uroot -p密码 选择mysql数据库 mysql> use mysql; 设置访 ...
- vsftp匿名访问目录_怎么更改vsftp匿名用户的默认登录目录/var/ftp?
你的位置: 问答吧 -> 服务器 -> 问题详情 怎么更改vsftp匿名用户的默认登录目录/var/ftp? redhat9 vsftp匿名用户登录默认为/var/ftp 请教各位大 ...
- 新增公告提示功能,支持用户异地登录提醒和授权过期通知,JumpServer堡垒机v2.15.0发布
11月1日,JumpServer开源堡垒机正式发布v2.15.0版本.在这一版本中,JumpServer新增公告提示功能,管理员可以根据不同的场景向所有用户实时发布重要通知:用户登录方面,新版本支持用 ...
最新文章
- Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
- cisco switch
- shell 脚本 自动发送邮件
- Leetcode 242. 有效的字母异位词 解题思路及C++实现
- 关于Dictionary元素的遍历
- 第五十六期:IPv6只是增加了地址数量?其实真相并没有那么简单!
- java ee 6 源码_Java EE 6开发手册·高级篇(第4版)
- ClickHouse到底有什么本事呢?互联网公司如此追捧
- 通达信与飞狐不同函数的替代
- 2021-09-14联想云教室连接不上服务器解决办法
- 简述算法和程序的区别并举例说明
- 刀具寿命预测研究方法
- ios 关于MBProgressHUD简单实用
- 练习2-1 Programming in C is fun
- java 加密方式_Get史上最优雅的加密方式!没有之一!
- Chrome 开发者工具 Initiator 面板单击后看不到 JavaScript 源代码的解决方法
- 出现“你的Windows许可证即将过期”提示
- 用C语言构造康托集,洛谷——P1014 Cantor表
- 2.1.2 Android刘海屏适配
- 计算机辅助设计在环境工程中的应用,原创:试论计算机辅助设计在环境工程中的应用原稿...
热门文章
- 机器学习算法竞赛平台整理
- 解决Unity3D使用VRTK时,VR眼镜连接不上的问题
- 虚拟现实是计算机软件么,虚拟现实技术对于电脑软件、硬件的配置要求有哪些?...
- VS2017中自用部分插件的设置的翻译或功能介绍—— Viasfora设置(一)
- oracle分区维护操作不能与其他,ORA-14048:分区维护操作不能与其它操作组合
- 如何正确的理解“光速不变”
- SDNU-1183.纪念品分组
- Java在线租车系统
- IOS 自动化配置踩坑(一)
- Gartner云安全理念解读