siu-toba / jwt-util
此包最新版本(v1.0.5)无可用许可证信息。
一个小型库,用于使用Web Tokens JSON(JWT)进行认证
v1.0.5
2023-04-17 20:28 UTC
Requires
- php: >=7.1.0
- firebase/php-jwt: ~6.4
Requires (Dev)
- phpunit/phpunit: 9.5.*
README
此库封装了JWT类型令牌(https://jwt.net.cn/)的操纵。允许使用对称密钥和/或非对称密钥生成和验证令牌。
当前需要php-jwt库。
安装
使用composer管理依赖项并下载jwt-util
composer require siu-toba/jwt-util
生成令牌
要生成令牌或进行encode操作,必须选择加密类型,无论是对称还是非对称,并定义一个密钥和一个算法。
$keySimetrica = 'test'; $datos = ['uid'=>'id-usuario', 'name'=>'usuario de prueba']; $simetricEncoder = new SimetricEncoder(Util::ALG_HS512, $keySimetrica, $datos); $jwt->setEncoder($simetricEncoder); $token = $jwt->encode(); echo $token; // eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1aWQiOjEyMzQ1NiwibmFtZSI6Im15IHVzZXIgbmFtZSJ9.RZcDtMfrzoVEISsVYsVz11-rZ87rWqS7RHYctQnpZKDt8m8YsVZysh9Hu0OpDnPT-8JjHbWS_Xkz6Am11UAulQ
验证令牌
同样,从令牌和密钥出发,可以验证或进行decode操作,以确定是否为有效令牌,从而提取相关信息。
$keySimetrica = 'test'; $simetricDecoder = new SimetricDecoder(Util::ALG_HS512, $keySimetrica); $this->jwt->setDecoder($simetricDecoder); // con el token generado previamente... $data = $this->jwt->decode($token); echo $data->uid; // 'id-usuario' echo $data->name; // 'usuario de prueba'
选项
支持以下算法和方法
要使用非对称方法生成令牌,需要公钥/私钥。以下是可以生成一些测试密钥的方式
openssl genrsa 512 > server.key openssl rsa -pubout < server.key > server.pem
注意:这会生成RS256密钥,要生成RS512密钥,请使用genrsa 1024