要验证PHP JWT(JSON Web Token)的合法性,您需要使用一个支持JWT的库。一个流行的库是firebase/php-jwt
。首先,您需要安装这个库:
composer require firebase/php-jwt
然后,您可以使用以下代码来验证JWT的合法性:
require_once 'vendor/autoload.php';
use \Firebase\JWT\JWK;
use \Firebase\JWT\JWT;
// 用于签名和验证JWT的密钥
$key = "your-256-bit-secret";
// 要验证的JWT
$jwt = "your-jwt-token";
try {
// 尝试解码和验证JWT
$decoded = JWT::decode($jwt, new JWK([
'alg' => 'HS256',
'use' => 'sig',
'kid' => 'your-key-id'
]), ['HS256']);
// 如果验证成功,$decoded将包含令牌的有效负载
echo "JWT is valid. Payload: " . json_encode($decoded);
} catch (\Firebase\JWT\ExpiredException $e) {
// 如果JWT已过期,将抛出此异常
echo "JWT has expired.";
} catch (\Firebase\JWT\SignatureInvalidException $e) {
// 如果签名无效,将抛出此异常
echo "Invalid JWT signature.";
} catch (\Exception $e) {
// 如果发生其他错误,将抛出此异常
echo "An error occurred: " . $e->getMessage();
}
请确保将your-256-bit-secret
替换为您自己的密钥,将your-jwt-token
替换为要验证的JWT,以及将your-key-id
替换为您的密钥ID(如果有)。
这个示例首先尝试解码和验证JWT。如果验证成功,它将输出令牌的有效负载。如果JWT已过期、签名无效或发生其他错误,它将捕获相应的异常并输出相应的错误消息。