luzpcn/ tp6-jwt-token
为ThinkPHP6集成的firebase/php-jwt
该包的官方仓库似乎已消失,因此该包已被冻结。
1.0
2022-05-17 11:56 UTC
Requires
- php: ^7.4 || ^8.0
- firebase/php-jwt: v6.2.*
README
这是一个基于firebase/php-jwt封装的JWT工具包,在前后端分离时非常有用。
配置
安装完成后会自动生成配置文件config/jwt.php
<?php
return [
//签名者
'signer' => 'HS256',
// 对称密钥
'private_key' => 'a4693602cbb7aee',
//token获取name
'header_name' => 'Authorization',
'header_prefix' => 'Bearer',
'param_name' => 'token',
//有效期(默认两个小时) 单位:秒
'exp' => 3600 * 2
];
使用
使用方式非常简单,传递token参数,你可以选择Header、Param提供3个方法create(array $payload)、auth()、invalidate(string $token_id, string $msg)。
生成token
示例:通过用户id生成token
$token = Token::create(['id'=>100]);
验证token
用于验证token,返回值是一个$payload数组
try {
$payload = Token::auth();
} catch (\Exception $e) {
$e->getMessage()//失败
}
无效token
通过将token存储到缓存中,使用tp6框架的cache方法
Token::invalidate(string $token_id, string $msg);
再使用上面的auth方法就会抛出异常:token无效:$msg