您现在的位置是:网站首页> 编程资料编程资料
ThinkPHP5框架中使用JWT的方法示例_php实例_
2023-05-25
313人已围观
简介 ThinkPHP5框架中使用JWT的方法示例_php实例_
本文实例讲述了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; } /** * 用户信息uid * @param [type] $uid [description] */ 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; } /** * 验证令牌是否有效 * @return [type] [description] */ public function validate(){ $data = new ValidationData(); $data->setIssuer($this->iss); $data->setAudience($this->aud); return $this->jsonDecode()->validate($data); } /** * 签名来验证令牌在生成后是否未被修改 * @return [type] [description] */ 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程序设计有所帮助。
您可能感兴趣的文章:
相关内容
- Thinkphp5框架异常处理操作实例分析_php实例_
- php实现统计IP数及在线人数的示例代码_php实例_
- Yii使用DbTarget实现日志功能的示例代码_php实例_
- 浅谈PHP之ThinkPHP框架使用详解_php技巧_
- 浅谈php常用的7大框架的优缺点_php技巧_
- KindEditor在php环境下上传图片功能集成的方法示例_php技巧_
- php连接mysql之mysql_connect()与mysqli_connect()的区别_php技巧_
- PHP+MySql实现一个简单的留言板_php实例_
- PHP8.0新功能之Match表达式的使用_php实例_
- PHP程序守护进程化实现方法详解_php技巧_
