在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小時)。你可以根據需要調整過期時間。