JWT生成&验证类
JwtAuthServices.php
<?php
/**
* jwt生成&验证
* @author
* @date 2021-07-28
*/
class JwtAuthServices{
// 算法
const ALG_MAPS = [
'HS256'=>'sha256'
];
/*
* 生成jwt
*@param array header
*@param array payload
*@param string secret
*@return string token
*/
public static function getToken(array $header, array $payload, string $secret) {
$base64header = self::base64UrlEncode(json_encode($header,JSON_UNESCAPED_UNICODE));
$base64payload = self::base64UrlEncode(json_encode($payload,JSON_UNESCAPED_UNICODE));
$alg = $header['alg'] ?? 'HS256';
return sprintf('%s.%s.%s', $base64header, $base64payload, self::signature($base64header . '.' . $base64payload, $secret, $alg));
}
/*
* 解析jwt
*@param string jwt
*@param stri