thinkphp5.1中jwt的使用,thinkphp使用JWT-PHP时找不到类解决方法
Posted 叮当Ding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5.1中jwt的使用,thinkphp使用JWT-PHP时找不到类解决方法相关的知识,希望对你有一定的参考价值。
首先需要使用 composer 安装 jwt,执行如下命令
另外,关于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
以上是关于thinkphp5.1中jwt的使用,thinkphp使用JWT-PHP时找不到类解决方法的主要内容,如果未能解决你的问题,请参考以下文章
thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkp