TP5 集成JWT认证
一、使用composer安装jwt
composer require firebase/php-jwt
安装完成后vendor 会出现firebase 目录文件,这就是我们需要用到的jwt 源文件。
二、jwt配置文件
key可以自定义配置, 放在config目录里便于统一更改。
三、项目中使用jwt
编写生成token方法
/** * Notice:获取jwt的token信息 * Date :2019/3/12 */ public static function getJwtToken($userId,$mobile) { $key = config('jwt.key'); $jwtData = [ 'lat' => config('jwt.lat'), 'nbf' => config('jwt.nbf'), 'exp' => config('jwt.exp'), 'uid' => $userId, 'mobile' => $mobile, //可以加入自己想要获得的用户信息参数 ]; $jwtToken = JWT::encode($jwtData, $key); return $jwtToken; }
验证token 获取信息方法
public static function checkJwtToken($token) { $key = config('jwt.key'); $info = JWT::decode($token, $key,['HS256']); return $info; }
通过url来获取token
得到token
将token带入,来获取用户信息
可以获取到uid 和mobile 信息。
注: 中间有出现个bug
经查看jwt.php 源码发现decode 方法 $allowed_algs参数 为空数组
打印$header->algs 发现值为HS256 ,
jwt文件在encode时,有默认给值 $alg =Hs256 在decode 时 去默认为空数组,我们需要在调用的时候 加入值就可以运行了如图
ok ,记录到这。