目录
三、在ThinkPHP6中直接使用JWT生成验证Token(简单粗暴)
四、在ThinkPHP6中使用JWT+中间件生成验证Token
前言
最近看了很多关于TP6使用JWT的文章,总结:按照他们的步骤——几乎不行,所以准备自己写一篇偏向实战的文章,也当做个记录。
一、JWT介绍
不喜欢搬文章,所以这篇文章,我愿称他为全网最详!(里面详细介绍了JWT是什么?为什么要用?优势、结构、用法等)
如果想直接看代码,请继续向下↓
二、使用composer安装JWT扩展包
composer require firebase/php-jwt
三、在ThinkPHP6中直接使用JWT生成验证Token(简单粗暴)
(一)代码文件
(已开启多应用模式)
composer require topthink/think-multi-app
common.php:
<?php
// 应用公共文件
use \Firebase\JWT\JWT;
use Firebase\JWT\Key;//在这个类的参数这里踩了坑,可恶
//生成验签
function signToken($data) :string
{
$key='LAL@lc!'; //这里是自定义的一个随机字串,应该写在config文件中的,解密时也会用,相当于加密中常用的 盐-salt
$token=array(
"iss"=>$key, //签发者 可以为空
"aud"=>'', //面象的用户,可以为空
"iat"=>time(), //签发时间
"nbf"=>time()+3, //在什么时候jwt开始生效 (这里表示生成100秒后才生效)
"exp"=> time()+7200, //token 过期时间
"data"=>$data //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
);
return JWT::enc