首页 > 作文

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

更新时间:2023-04-08 18:37:25 阅读: 评论:0

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

jwt下载地址:

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

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

创建文件

我是放在common目录下

使用教程

github都有的

贴源码

jwtauth.php

<?phpnamespace app\common\auth;u \lcobucci\jwt\builder;u \lcobucci\jwt\signer\hmac\sha256;u \lcobucci\jwt\parr;u \lcobucci\jwt\validationdata;/** * 单例模式 */class jwtauth{    private static $instance;    /**     * jwt token     * @var [type]     */    private $token;    /**     * 颁发     * @var string     */    private $iss = 'api.test.com';    /**     * 接收     * @var string     */    private $aud = 'app.com';     private $uid;     private $crect="#$%#$%*&^(*(*(";     private $decodetoken;     public static function getinstance() {        if(is_null(lf::$instance)) {            lf::$instance = new lf();        }        return lf::$instance;    }     private function __contruct(){     }     private function __clone(){     }     public function encode(){        $time = time();        $this->token = (new builder())->theader('alg','hs256')            ->tissuer($this->iss)            ->taudience($this->aud)            ->tissuedat($time) //生效时间            ->texpiration($time + 20)//过期时间            ->t('uid',$this->uid)            ->sign(new sha256(), $this->crect)//加密算法            ->gettoken();             return $this;    }     public function gettoken(){        return (string)$this->token;    }     public function ttoken($token){        $this->token = $token;        return $this;    }    /**     * 用户信息uid     * @param [type] $uid [description]     */    public function tuid($uid){        $this-&市尺等于多少厘米gt;uid = $uid;        return $this;    }     public function jsondecode(){         $token = $this->token;      动漫卡通头像  $this->decodetoken = (new parr())->par((string) $token);          // echo $this->decodetoken->getclaim('uid');        return $this->decodetoken;    }    /**     * 验证令牌是否有效     * @return [type] [description]     */    public function validate(){         $data = new validationdata();        $data->tissuer($this->iss);        $data->taudience($this->aud);        return $this->jsondecode()->validate($data);     }    /**     * 签名来验证令牌在生成后是否未被修改     * @return [type] [description]     */    public function verify(){        $result = $this->jsondecode()->verify(new sha256(), $this->crect);        return $result;    } }

ur.php 用来测试

<?phpnamespace app\index\controller;u app\common\auth\jwtauth; class ur{     public function login(){                $jwtauth = jwtauth::getinstance();  老师赞美的话      $token = $jwtauth->tuid(1)->encode()->gettoken();        echo $token;  新闻通稿怎么写      // var_dump(success_json_data(['token'=>$token]));    }     public function check_login(){        $jwtauth = jwtauth::getinstance();        $jwtauth->ttoken('eyj0exaioijkv1qilcjhbgcioijiuzi1nij9.eyjpc3mioijhcgkudgvzdc5jb20ilcjhdwqioijhchauy29tiiwiawf0ijoxntu2mdk1mdi5lcjlehaioje1ntywotuwndksinvpzci6mx0.oi4rlbqfnzujsw4四级及格分数fvhwioqxfemomuvldav-gfkl2v74');         if($jwtauth->validate() && $jwtauth->verify()){            echo '验证成功';        }el{            echo '登录过期';        }     }}

最后

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

本文发布于:2023-04-08 18:37:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/8780e9deb6fbc45a8edade3393359dfe.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:ThinkPHP5框架中使用JWT的方法示例.doc

本文 PDF 下载地址:ThinkPHP5框架中使用JWT的方法示例.pdf

标签:放在   令牌   我是   通稿
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图