给用当前登录的用户信息的id 生成token token作为redis的键 给token 设置值 设置token键的到期过期时间 登陆成功 token返回前端 前端每次调用接口都要传token

<?php
namespace app\api\controller\liumy;
use think\cache\driver\Redis;class Index //extends Base
{public static $userinfo;public function __construct(){//随便写的一个判断 验证登陆的方法 登陆时不需要if(\think\facade\Request::param('token')){self::check_login();}}/*** 用户登陆*/public function login(){$redis = new Redis();//根据用户名 密码 查询用户信息忽略//假如登陆用户的id为12$uid = 12;//假设token为 token生成方式  md5($uid.time().rand(10000,99999))$token = md5($uid.time().rand(10000,99999)); //如果要保证token的唯一 可以生成token的方式复杂一些//可以把每次生成的token 和 对应的uid 以日志的方式记录下来//登陆信息正确 用户信息为$userinfo = ['id' => 12,'username' => 'admin','rule' => '1,2,3,4','passwd' => 'admin'];//1,可以把token对应的用户信息(比如:用户id)存在数据库 方便根据token获取用户信息//2,也可以给redis中的$token键赋值用户信息的数据//以第一种方式举例$res = $redis->set($token,json_encode($userinfo),30); //登陆有效时间为30秒if($res){exit(json_encode(['code' => 200,'msg' => '登陆成功','date' => ['token' => $token, //该token 处理登陆接口 其他接口都要带token]]));}else{exit(json_encode(['code' => 201,'msg' => '登陆失败','date' => '']));}}/*** 验证用户登陆*/public static function check_login(){//验证用户登陆$redis = new Redis();$token = \think\facade\Request::param('token');if(!$redis->get($token)){exit(json_encode(['code' => 201,'msg' => '登陆过期 请重新登录','date' => '']));}else{//登陆成功//获取登陆用户的信息$userinfo = $redis->get($token);//因为调用接口有操作 延长token的过期时间$redis->set($token,$userinfo,30);//只要是有操作 就延长toekn过期时间dump('已登录,进行其他操作');dump(json_decode($userinfo));self::$userinfo = json_decode($userinfo);//进行接口的其他逻辑操作die;}}
}

redis做用户登陆相关推荐

  1. springboot使用redis做session会话管理

    在项目中经常用到session做用户登陆后的会话管理,利用redis的特性可以很好的实现这一效果,下面我们看看如何使用springboot整合redis做到管理session,也就是登录用户的信息,这 ...

  2. 学籍管理系统制作教程第二天之 用户登陆界面(三层)

    最近工作比较忙,所以没有连续的来写,今天有空了继续前面的 今天做用户登陆界面,使用三层架构,那么我就需要先理解什么是三层和为什么使用三层. 第一:什么是三层,UI表现层也就是界面,放各种界面如登陆界面 ...

  3. DotNetty系列六:将服务端和客户端改为Winform窗口,使用Redis做为缓存,实现用户登录,好友,群组上下线显示。

    这次改动挺大的. 1.服务端和客户端改为Winform窗口.好多细节未处理,只是实现了功能.     2.使用Redis做为缓存,版本redis-3.0.1,和RedisDesktopManager做 ...

  4. 【Java从0到架构师】Redis 应用 - Jedis 基本使用、使用缓存的用户登陆、缓存常见问题

    Redis 原理与实战 Jedis 基本使用 Jedis 连接 Redis 服务器 Jedis 使用 pipeline Jedis 发布订阅 Jedis 使用 bitmap Jedis 使用 Hype ...

  5. 如何用redis做活跃用户统计-HyperLoglog

    原文在这里: 如何用redis做活跃用户统计-HyperLoglog 网站经常有这样的需求:统计日活用户数,有哪些实现方式呢? 第一种做法:用redis的set集合. 用户登录以后,把用户id添加到r ...

  6. redis实现用户签到,统计活跃用户,用户在线状态,用户留存率

    开发的过程中,可能会遇到用户签到.统计当天的活跃用户.以及每个用户的在线状态,用户留存率的开发需求,可能会用传统的方法,根据相应的需求设计数据库表等,但这样耗费的存储空间大,以及性能方面也不会太好,下 ...

  7. 系统进程管理及用户登陆监控

    1.图形中如何查看进程gnome-system-monitor2.如何用命令查看进程ps 进程查看工具 -a shell中运行的进程 -x 不在shell重运行的进程 -u 查看进程用户 -l 显示进 ...

  8. Redis做消息队列,香吗?

    来自:架构师修行之路 菜菜哥,我刚做完了一个订单系统,感觉很简单呀 说说看,大量的订单状态怎么处理的? 我设计的时候可是考虑了这一点,所以用了异步处理,采用了MQ 那用的什么MQ呢,透露一下呗 我用的 ...

  9. aliyun redis 链接超时_用redis做异步队列,原来还可以这样

    Redis设计主要是用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列. 它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列: 另外,做消息队列的其他特性例如FIF ...

最新文章

  1. Python可视化matplotlib绘制三维可视化图形(Three-Dimensional)
  2. 5G 信令流程 — 5GC 的连接管理(CM,Connection Management)
  3. 基于matlab的脑瘤mr图像处理_基于Matlab GUI的医学图像处理课程虚拟实验平台设计...
  4. 捕捉不可控iframe的close事件_湖南大学王建锋团队:光/湿驱动的超快可逆可控致动器...
  5. hdu 4305 概率dp
  6. 笨方法“学习python笔记之循环
  7. OpenGL ES SDK for Android - 4
  8. 3109. [CQOI2013]新数独【DFS】
  9. AI部署从EonStor GSi存储解决方案开始
  10. 13个绚丽的Jquery 界面设计
  11. TYUT太原理工大学2022需求工程考试简答题
  12. html中w3c标准,css标准 - W3C中国
  13. 谷歌开发者大会焦点:TensorFlow.js可制作微信小程序,Android 10原生支持5G,TF2.0大更新...
  14. [ZJCTF 2019]EasyHeap-house of spirit
  15. 关于串口波特率的的记录
  16. 如何从区块链上数据识别出套利行为或者抢跑三明治交易
  17. 指针变量的定义和引用
  18. 【张量分解(一)】符号与基础知识
  19. Waifu2x-caffe下载
  20. 考研复试问答模板万能

热门文章

  1. 从源码全面解析Java 线程池的来龙去脉
  2. cscript 执行代码_使用Wscript/cscript调用VB脚本
  3. 物联网卡设置_聆听物联物联网卡APN设置教程
  4. Java虚拟机启动过程解析
  5. 基于大数据的股票数据可视化分析与预测系统
  6. Redis 锁的过期时间小于业务的执行时间该如何续期?
  7. matlab 中slam算法,基于环境特征的SLAM算法分析与评价
  8. 【论文分享】Learning Graphs for Knowledge Transfer with Limited Labels
  9. 等级保护常用术语及定义
  10. sig_stop 服的666的