当前位置: 首页 > news >正文

吉林做网站公司长沙网站设计的公司

吉林做网站公司,长沙网站设计的公司,开发平台英文,手机移动开发网站ThinkPHP 集成 jwt 技术 token 验证 一、思路流程二、安装 firebase/php-jwt三、封装token类四、创建中间件#xff0c;检验Token校验时效性五、配置路由中间件六、写几个测试方法#xff0c;通过postman去验证 一、思路流程 客户端使用用户名和密码请求登录服务端收到请求检验Token校验时效性五、配置路由中间件六、写几个测试方法通过postman去验证 一、思路流程 客户端使用用户名和密码请求登录服务端收到请求验证用户名和密码验证成功后服务端会签发一个token再把这个token返回给客户端客户端收到token后可以把它存储起来比如放到cookie中客户端每次向服务端请求资源时需要携带服务端签发的token可以在cookie或者header中携带服务端收到请求然后去验证客户端请求里面带着的token如果验证成功就向客户端返回请求数据 二、安装 firebase/php-jwt composer require firebase/php-jwt三、封装token类 因为我这个是多应用然后我就只在index应用只提供api接口下设置了token类 ?php namespace app\index\server;use Firebase\JWT\JWT; use Firebase\JWT\Key;class Token {protected $key;public function __construct(){//从配置信息这种或取唯一字符串你可以随便写比如md5(token)$this-key adcdefg;}/*** 生成token* param $uid* return mixed*/function generateToken($uid){//获取当前时间戳$currentTime time();$data array(iss $this-key, //签发者 可以为空aud , //面象的用户可以为空iat $currentTime, //签发时间nbf $currentTime, //立马生效exp $currentTime 7200, //token 过期时间 两小时data [ //记录的userid的信息这里是自已添加上去的如果有其它信息可以再添加数组的键值对uid $uid,]);//生成token$token JWT::encode($data, $this-key, HS256); //根据参数生成了 tokenreturn $token;}/*** 校验token时效性*/public function chekToken($token){$statusarray(code2);try {JWT::$leeway 60;//当前时间减去60把时间留点余地$decoded JWT::decode($token,new Key($this-key,HS256)); //HS256方式这里要和签发的时候对应$arr (array)$decoded;$res[code]1;$res[data]$arr[data];return $res;} catch(\Firebase\JWT\SignatureInvalidException $e) { //签名不正确$status[msg]签名不正确;return $status;}catch(\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用$status[msg]token失效;return $status;}catch(\Firebase\JWT\ExpiredException $e) { // token过期$status[msg]token失效;return $status;}catch(\Exception $e) { //其他错误$status[msg]未知错误;return $status;}}}四、创建中间件检验Token校验时效性 创建中间件命令 php think make:middleware CheckToken?php declare (strict_types 1);namespace app\middleware;class CheckToken {/*** 处理请求 token 验证** param \think\Request $request* param \Closure $next* return Response*/public function handle($request, \Closure $next){//第一步先取token$token $request-header(token);//jwt进行校验token$res (new TokenServer())-chekToken($token);if ($res[code] ! 1 ){return json([error_code999,msg$res[msg],data],400);}$request-uid $res[data]-uid;return $next($request);} }五、配置路由中间件 在config/middleware.php中注册中间件 ?php // 中间件配置 return [// 别名或分组alias [// 注册中间件check [app\middleware\CheckToken::class],],// 优先级设置此数组中的中间件会按照数组中的顺序优先执行priority [], ];在app/api/route/route.php路由文件中进行使用,进行使用中间件校验token ?php use think\facade\Route; // restfull 资源路由 Route::resource(a, TestR);// 路由分组 Route::group(a,function (){})-middleware(check); 六、写几个测试方法通过postman去验证 ?php declare (strict_types 1);namespace app\index\controller;use app\index\server\Token as TokenServer; use think\Request;use think\annotation\route\Resource;// 资源控制器 /*** Resource(a)*/ class TestR {/*** 显示资源列表** return \think\Response*/public function index(Request $request){// 假定用户名为robin和密码为123456即为正确的账号if($request-param(uname) robin $request-param(upwd)123456){$uid $request-param(uname);// 设置token$token (new TokenServer())-generateToken($uid);$data [name thinkphp, status 1,token$token];// 给前端返回json字符串同时前端将token获取并且存入到以后的所有操作中return show(config(status.success),请求成功,$data);}else{return show(config(status.error),用户名密码错误,null);}}/*** 保存新建的资源** param \think\Request $request* return \think\Response*/public function save(Request $request){// 用update 来验证一下token$token $request-param(token);$rs checkToken($token);return json($rs);}// .... }模拟登录测试 模拟前端携带token参数访问
http://www.zqtcl.cn/news/467/

相关文章:

  • 闽侯县建设局网站常州百度关键词优化
  • 聊城网站建设项目北京通信管理局网站备案处
  • 手机网站优化指南增值服务包括哪些内容
  • 桐乡住房和建设局网站怎么样建设网站网站
  • 怎么做网站网站深圳网站建设软件开发公司哪家好
  • 做网站流行的溧阳人才网 网站开发
  • 中企动力科技股份有限公司做网站字体设计在线生成免费
  • 微擎可以做企业网站吗杭州微网站开发公司
  • 网站建设制作模板网站用途及栏目说明
  • 昆明网站设计公司微网站建设公司首选公司
  • 网站素材 图标国内大宗商品交易平台
  • 做淘宝客网站赚钱吗专业手机网站建设价格
  • 亦庄网站设计网站推广网络营销方案
  • 中国建设银行网站维护营销是什么意思
  • 甘肃营销型网站建设网站漂浮代码
  • 营销单页网站制作企业所得税怎么算小规模纳税人
  • 大连里程科技做网站注册小公司要交税吗
  • 深圳网站建设公司收费黑龙江建设网监理证书
  • 您提供的产品已经提交过网站备案茶叶门户网站建立
  • 专业的集团网站设计网络外贸开发网站公司
  • 怎么自己做网站教程全国职业生涯规划大赛
  • 全媒体网站的建设网站建设评审意见
  • 百度网站推广价格查询为什么大公司开发网站
  • 蓝色科技企业网站模板免费下载各级院建设网站的通知
  • 网站3级营销是怎么做的运输房产网站建设
  • 网站建设支出公司网站怎样做维护
  • 网站根目录怎么找做网站时的电话图标
  • 垂直网站怎么做颜色搭配对网站重要性
  • 在阿里云上做网站步骤刚做外贸最好用哪个网站
  • 宁波企业建站系统wordpress滑验证