BBackOne Docsserver · utils · cli
Bun-nativeGitHub ↗
@geektech/backone-utils

JWT

WebCrypto HMAC JWT 签发与验证(HS256/384/512)。

jwt 模块基于 WebCrypto HMAC 实现(HS256 / HS384 / HS512),零运行时依赖。载荷为 Record<string, unknown> 与标准声明的交叉类型,允许携带任意自定义字段。

创建服务

ts
import { createJwt } from '@geektech/backone-utils';

const jwt = createJwt({
  secret: process.env.JWT_SECRET ?? "",
  algorithm: 'HS256',
});

签发与验证

ts
// 签发:expiresIn 秒后过期
const token = await jwt.sign({ sub: '42', role: 'admin' }, { expiresIn: 3600 });

// 验证:校验签名、过期时间与 issuer
const payload = await jwt.verify(token, { issuer: 'city-index' });
payload.sub;   // "42"

标准声明

字段说明
iss / sub / aud签发方 / 主题 / 受众
exp / nbf过期时间 / 生效时间(Unix 秒)
iat / jti签发时间 / 唯一标识

签发选项

选项说明
algorithm签名算法(默认使用服务构造时的 algorithm)
expiresIn过期秒数:相对当前时间写入 exp
notBefore生效秒数:相对当前时间写入 nbf

验证选项

选项说明
issuer必须匹配的 issuer(缺失或不一致则失败)
audience必须匹配的 audience
clockTolerance时钟容差(秒):校验 exp/nbf 时的宽松量,默认 0