单用户登陆demo ,采用的是Tp5。

流程是,当用户首次登陆是验证用户帐号密码,成功的,用当前时间戳加上用户id和ip 拼接成一个标识,暂且sign ,然后存入cookie ,时间戳存入缓存redis  ,session 携带用户信息

    //单点登陆demopublic function olineOneLogin(){   $params = Request::only('username,password');$validate = Validate::make(['username' => 'require','password' => 'require',]);if (!$validate->check($params)) {Error($validate->getError());}$userdata = Db::connect('login')->table('user')->where('username',$params['username'])->where('pass',md5($params['password']))->find();if( $userdata ){$time = time();$singleToken = md5(Request::ip().$userdata['uid']. $time);Cache::set($userdata['uid'],$time);Session::set('login',$userdata);Cookie::set('SINGLETOKEN',$singleToken);echo 'Landing successfully';}else{Error('帐号或密码错误!');}}

  

验证方法 就是用cookie里的sign 和redis的值对比下

    //验证方法function handle(){$userinfo  = Session::get('login');if($userinfo){$singletoken  = Cookie::get('SINGLETOKEN');if($singletoken){$time = Cache::get($userinfo['uid']);$ip = Request::ip();$secret = md5($ip.$userinfo['uid'].$time);if ($singletoken != $secret) {Session::delete('login');exit('您的帐号在另一个地点登录'); }//通过验证return ;}else{exit('请先登陆1'); }}else{exit('请先登陆2');}}

  

然后调用

    public function user(){   //验证,可以写中间件或者父类 ,我这是demo$this->handle();echo 'hello world';}

  

转载于:https://www.cnblogs.com/liubaoqing/p/10861175.html

单用户登陆demo-后者挤到前者,类似QQ相关推荐

  1. centos 单用户登陆模式操作

    在centos中因为安装java而配置 jdk环境变量的原因,对/etc/profile文件进行了编辑 错误的环境变量配置导致在第一次修改profile文件并保存后,执行source /etc/pro ...

  2. 域控下发脚本_域环境下做到单用户登陆控制脚本

    早两年的时候因目前工作的工厂有要求做域环境下单用户的登陆控制,即只允许一个用户帐号在域环境下一台电脑登陆,以此来做好相关用户资料及权限控制的要求,故通过此脚本来做好相关用户的登陆记录,并配合之后的注销 ...

  3. 七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

    一.CURD的Demo 1开发前准备工作 新建一个SpringBoot工程 引入starter-web maven依赖 引入html页面和assert文件夹里的样式文件等等 2 实现访问登录页面 方式 ...

  4. 用户模式 linux救援单用户 虚拟机克隆和linux相互登陆

    1. 查看用户支行级别: runlevel  (共有六个:0-6,0关机,1单用户,2多用户(不带网络文件系统NFS),3多用户(全功能),4保留,5界面(桌面),6重启) 默认模式修改在: vim ...

  5. ASP.NET MVC实现一个用户只能登录一次 单用户登录

    现在许多网站都要求登录后才能进行进一步的操作,当不允许多用户同时登录一个帐号时,就需要一种机制,当再登录一个相同的帐号时,前面登录的人被挤下线,或者禁止后面的人登录.这里实现的是前一种功能. 网上有许 ...

  6. Yii 用户登陆机制

    Yii 生成应用时已经提供了最基础的用户登陆机制.我们用 Yii 生成一个新的应用,进入 protected/components 目录,我们可以看到 UserIdentity.php 文件,里面的 ...

  7. springboot整合mybaits-plusmybaits实现用户登陆界面(适合入门)+唯美界面

    springboot整合mybaits-plus/mybaits实现用户登陆界面(一步步解析)+唯美界面 文章目录 springboot整合mybaits-plus/mybaits实现用户登陆界面(一 ...

  8. CAS单点登录-单用户登录(十九)

    CAS单点登录-单用户登录(十九) 简介 所谓"单用户单账户登录"是指:在同一系统中,一个用户名不能在两个地方同时登录. 如: 当某账号在 A 处登录后,在未退出的情况下,如果再到 ...

  9. CentOS 7 单用户模式+救援模式

    有时候大家可能会忘记自己的root密码,或者错误(命令输入错误,命令位置输入有误等)编辑了一个/etc目录下的核心文件导致系统不能正常启动了!怎么办?重新安装系统那是实在没有办法之举!那我们就进入如下 ...

最新文章

  1. 我把SpringBoot的banner换成了美女,老板:工作不饱和,建议加班
  2. 模糊测试(fuzz testing)介绍(一)
  3. 一步一步学习Bootstrap系列--表单布局
  4. (重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
  5. python3源码精要(1)-C源代码取得与基本特征
  6. C/Cpp / 设计模式 / 模板模式
  7. ubuntu下载百度网盘文件油猴+aria2
  8. 嵌入式linux 定时 唤醒,Linux的cron定时任务使用说明
  9. SpringCloud相关概念介绍
  10. 美团差评数据分析,python代码实现
  11. 什么是掼蛋游戏呼叫中心
  12. cakephp 1.3 Models
  13. JavaScript学习笔记之BOM篇,认识几种常见的浏览器对象
  14. 分段显示 linux_ArchAudit:一款在 Arch Linux 上检查易受攻击的软件包的工具 | Linux 中国...
  15. greasyfork脚本怎么取消_更新了js脚本,回答一些常见问题
  16. 关于渐变属 gradient:
  17. Hexo+Next主题的一些实用插件和美化升级
  18. 为什么数学不好,和语文有关系?
  19. php 服务端埋点,客户端埋点方案总结
  20. echarts上加横线标线_Echarts地图添加引导线效果(labelLine)

热门文章

  1. (计算机组成原理)第二章数据的表示和运算-第二节1:定点数的表示(原码、反码、补码和移码)
  2. thrift客户端调用不支持多线程,非线程安全
  3. Shell sed命令,替换文件内容、替换目录下所有文件内容、读取文件内容
  4. C# string转double,double转string
  5. Penta:一款开源的多合一自动化渗透测试命令行工具(很强,包含扫描、DNS、Shodan)
  6. python中os.path.dirname(__file__)的使用(获取文件夹路径)(获取当前py文件绝对路径)
  7. Windows编程—获取操作系统默认浏览器路径
  8. Office2003与Office2007默认打开方式的切换
  9. Red and Black (找到一个标记一个)
  10. Python判断函数与方法