要验证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已过期、签名无效或发生其他错误,它将捕获相应的异常并输出相应的错误消息。