SuperAPI AI 工具集

jwt-implementation

编程与开发

查看项目

更新于 10-15 22:19

技能介绍

用途:审计已有 JWT 认证配置,或从零实现正确的 JWT 认证(后端+前端);回答存储、轮换、吊销等单点问题;为 Node/Express、Python/FastAPI 等具体技术栈推荐模式。

主要能力:

  1. 签名算法:HS256 为对称共享密钥,适合单服务且密钥不外传;RS256 为非对称,适合多服务/微服务,公钥可经 JWKS 分发。服务端须显式白名单算法,拒绝 alg: none,Node 示例:jwt.verify(token, publicKey, { algorithms: ['RS256'] })。
  2. 过期设计:访问令牌 5–15 分钟,载荷仅含必要信息(用户 ID、角色、租户),避免 PII;刷新令牌 7–30 天,须为不透明随机串,服务端仅存 bcrypt 或 SHA-256 哈希。令牌应含 sub、iat、exp、jti,并校验 iat(时钟偏差容忍 ≤30s)。
  3. 刷新令牌轮换:每次使用后签发新令牌并作废旧的;用 family_id 标记同一登录会话,检测到重放即按 family 吊销全部令牌,强制重新认证。给出了 refresh_tokens 表的 SQL 结构(含 family_id、token_hash、expires_at、revoked 等字段)。
  4. 存储:推荐 httpOnly Cookie 搭配 SameSite=Strict/Lax、secure、maxAge;Cookie 需 CSRF 防护(跨域用 Double Submit Cookie 或同步器令牌)。localStorage 仅适合原生移动端或跨域调第三方 API 的 SPA,须配合严格 CSP。
  5. 吊销:方案 A 短过期+blocklist(Redis 存 jti,设 TTL);方案 B 用户级 token_version 计数器,校验时版本低于 DB 即拒绝,无需 Redis;方案 C 引用令牌,每请求查库,牺牲无状态。

用法与限制:该技能以 Markdown 输出审计或建议,结构为摘要、问题(按严重度分级)、建议、代码片段;实现任务按用户技术栈产码,未知时默认 Node.js + Express + TypeScript。附带 references/storage-tradeoffs.md 与 references/stack-examples.md 参考文件。审计清单涵盖算法白名单、过期时长、刷新令牌哈希存储、轮换、重放检测、jti、存储方式、CSRF、吊销路径、exp/iat 校验、密钥管理、生产环境强制 HTTPS。未提供具体价格、收费或平台限制信息。