用途:为 AI 智能体提供认证实现模式,涵盖密码哈希策略、令牌设计、会话管理与 OAuth 流程,原则与语言无关,JWT/OAuth 示例使用 Node.js。适用于实现登录、注册或登出,设计 JWT 或基于会话的认证,集成 OAuth/OIDC 提供商(如 Google、GitHub),以及加固既有认证层。不适用于授权/RBAC(认证之后的权限),也不用于特定框架搭建(应改用 express、nest、nextjs)。
主要能力与关键规则:JWT 必须用 jwt.verify() 配合密钥与指定算法校验签名,不可用 jwt.decode() 跳过验证;采用短期访问令牌(15 分钟,存内存,Bearer 头发送)加长期刷新令牌(7–30 天,httpOnly cookie,每次刷新轮换);令牌载荷不得放敏感信息,只放非敏感标识符,如 jwt.sign({ sub: userId, role: user.role }, secret, { expiresIn: '15m' })。密码哈希首选 Argon2id,bcrypt(cost ≥ 12,72 字节输入限制)或 scrypt 可接受,禁止 SHA-256/MD5 等快速哈希;由库生成盐,存储完整 PHC 字符串,使用库的 verify/compare,仅哈希密码字段,用户不存在时也执行哈希以防计时枚举。密钥比较用 crypto.timingSafeEqual,不用 ===。OAuth 必须服务端生成、存储并在回调校验 state;公共客户端用 PKCE。认证端点应限流(如 10 请求/15 分钟/IP),错误信息统一为“Invalid credentials”,不确认邮箱是否存在。密码重置令牌限时 15–60 分钟、单次使用。
使用方式:按决策树选择哈希算法与令牌策略,参考示例实现登录签发与刷新轮换。
限制:未提供具体框架安装命令、价格或平台信息。