当前位置:首页 > PHP

jwt php实现

2026-02-13 22:48:54PHP

JWT PHP 实现方法

安装依赖库

使用 Composer 安装 firebase/php-jwt 库,这是目前 PHP 中最流行的 JWT 实现库。在项目根目录运行以下命令:

composer require firebase/php-jwt

生成 JWT Token

创建一个 PHP 文件,引入自动加载文件并使用库生成 Token:

<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;

$key = "your_secret_key"; // 替换为实际密钥
$payload = [
    "iss" => "http://example.org", // 签发者
    "aud" => "http://example.com", // 接收方
    "iat" => time(), // 签发时间
    "exp" => time() + 3600 // 过期时间(1小时后)
];

$jwt = JWT::encode($payload, $key, 'HS256');
echo $jwt;
?>

验证 JWT Token

验证接收到的 Token 是否有效并解码内容:

jwt php实现

<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;

$key = "your_secret_key"; // 必须与签发时使用的密钥一致
$jwt = "received_token_here"; // 替换为实际接收到的Token

try {
    $decoded = JWT::decode($jwt, $key, ['HS256']);
    print_r($decoded);
} catch (Exception $e) {
    echo '验证失败: ',  $e->getMessage();
}
?>

自定义算法支持

该库支持多种算法,包括 HS256、RS256 等。如需使用 RSA 算法:

$privateKey = file_get_contents('private.key');
$publicKey = file_get_contents('public.key');

// 生成Token
$jwt = JWT::encode($payload, $privateKey, 'RS256');

// 验证Token
$decoded = JWT::decode($jwt, $publicKey, ['RS256']);

异常处理

常见的异常类型包括:

jwt php实现

  • SignatureInvalidException:签名验证失败
  • BeforeValidException:Token 尚未生效
  • ExpiredException:Token 已过期
  • DomainException:算法不支持或其他域错误

最佳实践

密钥应当足够复杂并定期更换,避免使用简单字符串。生产环境中建议将密钥存储在环境变量中而非代码里。

Token 的过期时间应根据业务需求合理设置,通常访问令牌设置为较短时间(如1小时),刷新令牌可设置较长时间。

对于敏感操作,每次请求都应验证 Token 的有效性,并考虑实现 Token 的黑名单机制以增强安全性。

标签: jwtphp
分享给朋友:

相关文章

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php 实现路由

php 实现路由

PHP 实现路由的方法 在 PHP 中实现路由功能可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 PHP 实现简单路由 通过解析 URL 并匹配对应的处理逻辑,可以实现基本的路由功能。以…