要使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。