要驗證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已過期、簽名無效或發生其他錯誤,它將捕獲相應的異常并輸出相應的錯誤消息。