redis----token验证
2019-08-09 12:09
1371 查看
[code]<?php /** * token生成和验证类 * 2019.8.3 */ namespace app\common\model; use redis\RedisPackage; class TokenCheck { public function __construct() { $this->redis_package = new RedisPackage(); } /* *用户登陆的时候,生成token,如果以后访问的接口需要登录,前端都必须带token过来 * return string(36) "123_852bf8521ec933e0a52b1f12cac6d878" */ public function createToken($userid){ $token = $userid.'_'.MD5( $userid.uniqid().rand( 00000000,99999999 ) ); $this->redis_package->set("admin_".$userid, serialize( array( 'time'=>time(),'token'=>$token,'user_id'=>$userid ) ) ); return $token; } //token登陆验证 public function checkToken( $token ) { $maxtime=86400 * 3; //3天过期时间,单位是秒 $user_id=strstr( $token,"_",true ); //取到用户id $key_admin = $this->redis_package->get("admin_".$user_id); // dump($key_admin);die; if($key_admin){ $fcode = unserialize($key_admin); if($fcode['token'] != $token){ returnJson(-1006, "token异常,请重新登陆")->send();die; }else if($fcode['time'] + $maxtime < time()){ returnJson(-1005, "token过期,请重新登陆")->send();die; }else{ //重新写入当前时间,确保3天以内登陆的用户一直不需要重新登陆 $this->redis_package->set("admin_".$user_id, serialize( array( 'time'=>time(),'token'=>$token,'user_id'=>$user_id ) ) ); } }else{ returnJson(-1007, "token不存在,请登陆")->send();die; } } }
相关文章推荐
- 利用Redis和Jwt实现Token生成,存储,验证方法
- 基于 Token 的身份验证
- 微信的token验证
- koa2,koa-jwt中token验证实战详解
- jsp 微信公众平台 token验证(php、jsp)(转载)
- 你的服务器没有正确响应Token验证的解决方法
- Django Rest Framework - 实例PartyDemo 之 Token验证
- springboot-Spring Cloud Security- Spring Cloud OAuth2 -token-redis 接口权限01
- php token使用与验证示例
- .NET WebAPI 用ActionFilterAttribute实现token令牌验证与对Action的权限控制
- 微信token验证失败Java解决办法
- 使用新浪SAE开发微信公众号 验证Token却一直失败
- python3生成token和验证
- 使用thinkphp微信token验证失败
- Nginx-token验证
- 公众号开发验证开发者身份token-微信开发视频教程4
- WebApi_基于Token的身份验证——JWT(z)
- Token验证失败
- 利用Redis撤销JSON Web Token产生的令牌
- php自定义token及验证