学习记录
thinkphp5.1中jwt的使用,thinkphp使用JWT-PHP时找不到类解决方法
首先需要使用 composer 安装 jwt,执行如下命令composer require firebase/php-jwt安装完成之后,在你的 vendor 目录下会多出如下目录接下来在 application\common.php 中定义两个方法,一个生成token,一个验证tokencommon.php引入jwt另外,关于composer的下载可以参考这篇链接use Firebase\JWT\JWT;生成token我这里的参数都是从配置文件中直接取的,关.
2021-05-11 05:44:59
594
                <p>首先需要使用 <strong>composer </strong>安装 <strong>jwt</strong>,执行如下命令</p> 

另外,关于composer的下载可以参考 这篇链接

composer require firebase/php-jwt

安装完成之后,在你的 vendor 目录下会多出如下目录

接下来在 application\common.php 中定义两个方法,一个生成token,一个验证token

common.php引入jwt

use Firebase\JWT\JWT;

生成token

我这里的参数都是从配置文件中直接取的,关于自定义配置文件 点击查看

/**
 * @description 生成token
 * @param Array   $payload 数据
 */
function createToken($payload=[]){
    $secret = config('token.secret');   //密匙
    $iss = config('token.iss');         //签发人(官方字段:非必需)
    $exp = config('token.exp');         //过期时间(官方字段:非必需)
    $aud = config('token.aud');         //受众(官方字段:非必需)
    $nbf = config('token.nbf');         //生效时间(官方字段:非必需)
    $iat = config('token.iat');         //签发时间(官方字段:非必需)
    $payload = [
        'iss'=>$iss,
        'exp'=>$exp,
        'aud'=>$aud,
        'nbf'=>$nbf,
        'iat'=>$iat,
        'data'=>$payload
    ];
    $token = JWT::encode($payload,$secret,'HS256');
    return $token;
}

验证token

这里返回的信息我只取了 生成 token 时 传入的数据

/**
 * @description 验证token
 * @param String  $token token
 * @return Object 返回生成token的信息
 */
function checkToken($token){
    $secret = config('token.secret');   //密匙
    try {
        // JWT::$leeway = 60;//当前时间减去60,把时间留点余地
        $decoded = JWT::decode($token, $secret, ['HS256']);
        $Result = (array)$decoded;
        $Data = $Result['data'];
        return json_encode($Data);
    }catch(Exception $e) {  //其他错误
        $Result = ['code'=>401,'msg'=>'token失效,请重新登录'];
        return json_encode($Result, JSON_UNESCAPED_UNICODE);
    }
}

一个前端的php学习之路

 

PHP学习交流群?:PHP学习交流群( 901759097 )

前端学习交流群?:前端交流群 ( 1063233592 )

微信公众号?:叮当Ding