用途:JWT 是一种紧凑、URL 安全的声明(claims)表示方式,以 JSON 对象作为 JWS 或 JWE 的载荷在双方之间传输。适用于微服务间无数据库会话查询的无状态授权、OAuth 2.0/OpenID Connect 的签名 access/ID 令牌、以及密码重置、邮箱验证、文件下载等有时限的临时访问凭证;也支持各微服务用共享公钥(JWKS)在本地独立校验签名。
主要能力:介绍 JWT 的三段结构 Header.Payload.Signature 与 base64url 编码;RS256 非对称签名(私钥签发、公钥验证)与 HS256 对称签名;iss、aud、exp 等 claims 的校验;JWKS 公钥自动轮换;以及常见模式,如用 jwks-rsa 按 kid 动态获取公钥进行异步验证,避免在多服务间硬编码对称密钥。
必要用法:签发示例如 jwt.sign({...}, privateKey, { algorithm:"RS256", expiresIn:"15m", issuer, audience });验证示例如 jwt.verify(token, publicKey, { algorithms:["RS256"], issuer, audience }),使用 jose 时通过 createRemoteJWKSet(new URL("https://auth.example.com/.well-known/jwks.json")) 获取密钥集合。
最佳实践与限制:access token 有效期应较短(5-15 分钟),配合安全的 refresh token 轮换;必须校验 iss、aud、exp,不能只验签名;多服务架构使用 RS256 或 EdDSA,避免共享 HS256 密钥;验证时显式白名单算法以防算法混淆(none 或 HS256)攻击。不要在载荷中放入敏感 PII 或密钥,因为 payload 仅 base64 编码可被读取;不要在浏览器 localStorage 中存储 JWT,应使用 HttpOnly、Secure、SameSite cookie 防 XSS 窃取;claims 应尽量精简以免增大每个 HTTP 头。常见错误包括 TokenExpiredError(exp 已过,需用 refresh token 刷新)与 JsonWebTokenError(格式或签名不匹配,需检查密钥与令牌完整性)。相关参考为 jwt.io 与 RFC 7519。
该技能来源资料未提供具体收费、价格、支持平台及完整安装命令等信息。