栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

ThinkPHP5框架中使用JWT的方法示例

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ThinkPHP5框架中使用JWT的方法示例

本文实例讲述了ThinkPHP5框架中使用JWT的方法。分享给大家供大家参考,具体如下:

JWT下载地址:https://jwt.io

可以直接去github上下载,也可以使用composer

使用composer的话要确保你的电脑上安装了composer,进入项目根目录下载即了,自动会放在vendor目录下

创建文件

我是放在common目录下

使用教程

github都有的

贴源码

JWTAuth.php

token = (new builder())->setHeader('alg','HS256')
     ->setIssuer($this->iss)
     ->setAudience($this->aud)
     ->setIssuedAt($time) //生效时间
     ->setExpiration($time + 20)//过期时间
     ->set('uid',$this->uid)
     ->sign(new Sha256(), $this->secrect)//加密算法
     ->getToken();
 
     return $this;
    }
 
    public function getToken(){
 return (string)$this->token;
    }
 
    public function setToken($token){
 $this->token = $token;
 return $this;
    }
    
    public function setUid($uid){
 $this->uid = $uid;
 return $this;
    }
 
    public function jsonDecode(){
 
 $token = $this->token;
 $this->decodeToken = (new Parser())->parse((string) $token); 
 
 // echo $this->decodeToken->getClaim('uid');
 return $this->decodeToken;
    }
    
    public function validate(){
 
 $data = new ValidationData();
 $data->setIssuer($this->iss);
 $data->setAudience($this->aud);
 return $this->jsonDecode()->validate($data);
 
    }
    
    public function verify(){
 $result = $this->jsonDecode()->verify(new Sha256(), $this->secrect);
 return $result;
    }
 
}

user.php 用来测试

setUid(1)->encode()->getToken();
 echo $token;
 // var_dump(success_json_data(['token'=>$token]));
    }
 
    public function check_login(){
 $jwtAuth = JWTAuth::getInstance();
 $jwtAuth->setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcGkudGVzdC5jb20iLCJhdWQiOiJhcHAuY29tIiwiaWF0IjoxNTU2MDk1MDI5LCJleHAiOjE1NTYwOTUwNDksInVpZCI6MX0.oi4rLbQFNZUJsW4fVHWiOQxfEmomuvldAV-gFKl2V74');
 
 if($jwtAuth->validate() && $jwtAuth->verify()){
     echo '验证成功';
 }else{
     echo '登录过期';
 }
 
    }
}

最后

jwt本身的话是不带token刷新方法,所以一旦token过期,客户端就要重新登录。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend frameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/38335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号