用途:在实现 JWT 认证、审查现有 JWT 代码、配置刷新令牌轮换、排查 JWT 问题或迁移到 JWT 认证时,提供安全实现参考。
主要能力:列出常见漏洞及风险等级,包括算法 none(接受未签名令牌)、算法混淆(RS256 转 HS256)、弱密钥、无过期、载荷含敏感数据、令牌泄露。给出令牌生成、验证、认证中间件、刷新令牌轮换、令牌吊销和 RS256 非对称密钥的代码示例,并附安全检查清单与最佳实践。
必要用法:验证时必须显式白名单算法,例如 jwt.verify(token, secret, { algorithms: [JWT_CONFIG.algorithm] });不要使用 jwt.decode 代替验证,也不要省略算法参数。访问令牌应短过期(示例 15 分钟),刷新令牌应轮换并存储哈希。RS256 可用 openssl genrsa -out private.pem 2048 与 openssl rsa -in private.pem -pubout -out public.pem 生成密钥对。客户端存储优先 HttpOnly Cookie,避免 localStorage 和 URL 传参。
适用场景:Node.js 后端认证服务、分布式系统中签发与验证分离、需要登出或吊销令牌的场景。
限制:资料未提供具体安装命令、依赖版本、收费或平台信息;示例基于 jsonwebtoken 与 Redis,实际部署需自行补充数据库与密钥管理细节。