首先安装JWT
composer require firebase/php-jwt
生成token
数据准备准备一个需要的用户信息 $account = ['id' => 'root', 'password' => 123456];准备一个$payload $payload=["userinfo"=>$account,"exp"=>time()+3600*24//过期时间];不限于以下iss:发行人exp:到期时间sub:主题aud:用户nbf:在此之前不可用iat:发布时间jti:JWT ID用于标识该JWT使用JWT::encode方法加密第一个参数是 我们准备的数据第二个参数是 我们自己知道但是不能泄露的加密的盐第三个参数是 加密方式要与解密保持一致$token = JWT::encode($payload, $saline, 'HS256');会返回一个token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyaW5mbyI6eyJpZCI6InJvb3QiLCJwYXNzd29yZCI6MTIzNDU2fSwiZXhwIjoxNjQ0NDczMDc3fQ.04M_baRDceG-kL5hjuA6CPpJDuac71OewOjidjEwW8Y 以AA.BB.YY格式其中BB段为使用base64编码的$payload,是可逆的
使用token返回信息(解码)
使用JWT::decode进行解码第一个参数是我们刚才生成的token第二个参数是一个Key对象 可由use Firebase\JWT\Key; 实例化一个key过程中传入与encode 过程中相同的盐和加密方式作为参数$decode = JWT::decode($token, new Key($saline, 'HS256'));$decode返回stdClass Object ( [userinfo] => stdClass Object ( [id] => root [password] => 123456 ) [exp] => 1644473077 )