之前jwt版本代码写法
<?php
require __DIR__ . '/vendor/autoload.php';
use \Firebase\JWT\JWT;
$key = 'your_secret_key';
$payload = array(
"iss" => "your_app_name",
"aud" => "your_app_users",
"sub" => "user_id",
"exp" => time() + 3600 // 设置过期时间,单位为秒
);
$algorithm = 'HS256';
$jwt = JWT::encode($payload, $key, $algorithm);
echo "JWT: " . $jwt;
try {
$decoded = JWT::decode($jwt, $key, array('HS256'));
var_dump($decoded);
// 验证成功,JWT 有效
// 你可以通过 $decoded->xxx 获取有效载荷中的数据
} catch (Exception $e) {
// 验证失败,JWT 无效或已被篡改
}
php-jwt版本更新后写法变了
require_once 'vendor/autoload.php'; // 导入必要的依赖
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$key = 'example_key';
$payload = [
'iss' => 'http://example.org',
'aud' => 'http://example.com',
'iat' => 1356999524,
'nbf' => 1357000000
];
/**
* IMPORTANT:
* You must specify supported algorithms for your application. See
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
* for a list of spec-compliant algorithms.
*/
$jwt = JWT::encode($payload, $key, 'HS256');
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
print_r($decoded);
具体案例可以参考这个文件案例