在PHP中,使用JSON Web Tokens(JWT)时,可以通过在生成令牌时设置exp
声明来指定过期时间。exp
声明代表令牌的过期时间,它是一个UNIX时间戳。以下是一个使用firebase/php-jwt
库生成带有过期时间的JWT的示例:
首先,确保已经安装了firebase/php-jwt
库。如果尚未安装,可以使用Composer进行安装:
composer require firebase/php-jwt
然后,使用以下代码生成一个带有过期时间的JWT:
require_once 'vendor/autoload.php'; use \Firebase\JWT\JWT; use \Firebase\JWT\Key; // 秘钥,用于签名和验证令牌 $key = "your-secret-key"; // 载荷数据,可以包含任何需要的信息 $payload = array( "iss" => "http://example.org", "iat" => time(), // 令牌的签发时间 "exp" => time() + 3600, // 令牌的过期时间,单位:秒。这里设置为1小时后过期 "data" => array( "userId" => 12345, "username" => "exampleUser" ) ); // 生成JWT $jwt = JWT::encode($payload, $key, 'HS256'); echo "Generated JWT: " . $jwt . "\n";
在这个示例中,我们设置了一个1小时后过期的JWT。time()
函数返回当前的UNIX时间戳,所以exp
声明的值将是当前时间戳加上3600秒(1小时)。你可以根据需要调整过期时间。