JWT里面的 encode 和 decode方法进行生成token和验证token
/**
* @Author: 小破孩嫩
* @Email: 3584685883@qq.com
* @Time: 2021/6/17 16:14
* @param $uid
* @return mixed
* @Description:生成token
*/
public function setToken($uid){
//私钥
$privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC8kGa1pSjbSYZVebtTRBLxBz5H4i2p/llLCrEeQhta5kaQu/Rn
vuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t0tyazyZ8JXw+KgXTxldMPEL9
5+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4ehde/zUxo6UvS7UrBQIDAQAB
AoGAb/MXV46XxCFRxNuB8LyAtmLDgi/xRnTAlMHjSACddwkyKem8//8eZtw9fzxz
bWZ/1/doQOuHBGYZU8aDzzj59FZ78dyzNFoF91hbvZKkg+6wGyd/LrGVEB+Xre0J
Nil0GReM2AHDNZUYRv+HYJPIOrB0CRczLQsgFJ8K6aAD6F0CQQDzbpjYdx10qgK1
cP59UHiHjPZYC0loEsk7s+hUmT3QHerAQJMZWC11Qrn2N+ybwwNblDKv+s5qgMQ5
5tNoQ9IfAkEAxkyffU6ythpg/H0Ixe1I2rd0GbF05biIzO/i77Det3n4YsJVlDck
ZkcvY3SK2iRIL4c9yY6hlIhs+K9wXTtGWwJBAO9Dskl48mO7woPR9uD22jDpNSwe
k90OMepTjzSvlhjbfuPN1IdhqvSJTDychRwn1kIJ7LQZgQ8fVz9OCFZ/6qMCQGOb
qaGwHmUK6xzpUbbacnYrIM6nLSkXgOAwv7XXCojvY614ILTK3iXiLBOxPu5Eu13k
eUz9sHyD6vkgZzjtxXECQAkp4Xerf5TGfQXGXhxIX52yH+N2LtujCdkQZjXAsGdm
B2zNzvrlgRmgBrklMTrMYgm1NPcW+bRLGcwgW2PTvNM=
-----END RSA PRIVATE KEY-----
EOD;
$payload = [
'iss'=>'xiaopohai', //签发人(官方字段:非必需)
'exp'=>time()+3600*24*7, //过期时间(官方字段:非必需)
'aud'=>'everyone', //受众(官方字段:非必需)
'nbf'=>time(), //生效时间(官方字段:非必需)
'iat'=>time(), //签发时间(官方字段:非必需)
'userInfo'=>[
'id' =>$uid,
],
];
$token = JWT::encode($payload,$privateKey,'HS256');
return $token;
}
/**
* @Author: 小破孩嫩
* @Email: 3584685883@qq.com
* @Time: 2021/6/17 16:01
* @param $token
* @return int[]
* @Description:验证token
*/
public function checkToken($token){
try{
//公钥
$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8kGa1pSjbSYZVebtTRBLxBz5H
4i2p/llLCrEeQhta5kaQu/RnvuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t
0tyazyZ8JXw+KgXTxldMPEL95+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4
ehde/zUxo6UvS7UrBQIDAQAB
-----END PUBLIC KEY-----
EOD;
$res = JWT::decode($token,$publicKey,['HS256']);
returnResponse('200','请求成功', $res);
}catch (Exception $e) {
returnResponse(100,$e->getMessage());
}
}
学习地址:https://github.com/firebase/php-jwt
评论 (0)