要使PHP JWT(JSON Web Token)適應不同的業務需求,您可以根據以下幾個步驟進行操作:
firebase/php-jwt
庫,可以通過Composer安裝:composer require firebase/php-jwt
require_once 'vendor/autoload.php';
use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;
// 密鑰,應妥善保管
$key = "your-secret-key";
// 用戶數據
$user = [
"uid" => 1,
"username" => "example_user",
"exp" => time() + (60 * 60) // 設置過期時間為1小時
];
// 生成令牌
$token = JWT::encode($user, $key, 'HS256');
echo "Generated token: " . $token . PHP_EOL;
// 驗證令牌
try {
$decoded = JWT::decode($token, new Key($key, 'HS256'));
print_r($decoded);
} catch (\Firebase\JWT\ExpiredException $e) {
echo "Token has expired.";
} catch (\Exception $e) {
echo "Error decoding token: " . $e->getMessage();
}
$user = [
"uid" => 1,
"username" => "example_user",
"role" => "admin",
"permissions" => ["create", "read", "update", "delete"],
"exp" => time() + (60 * 60) // 設置過期時間為1小時
];
令牌刷新和過期處理:根據業務需求實現令牌刷新和過期處理機制。例如,可以設置短期令牌并在即將過期時返回刷新令牌的接口。
集成到認證和授權流程:將JWT集成到項目的認證和授權流程中,確保在需要驗證用戶身份的接口中驗證令牌。
跨域資源共享(CORS):如果項目涉及跨域請求,請確保正確配置CORS策略以允許JWT請求。
通過以上步驟,您可以根據不同的業務需求定制和適應PHP JWT。