用途
API Authentication 用于为 API 实现安全的认证机制,采用现代标准与最佳实践。它面向需要构建认证系统、第三方集成或服务间通信的场景。
主要能力
该技能覆盖多种认证方式,并给出各自适用场景与安全等级:
- JWT:适用于无状态认证、单页应用(SPA),安全等级高。
- OAuth 2.0:适用于第三方集成,安全等级高。
- API 密钥:适用于服务间通信,安全等级中等。
- 会话(Session):适用于传统 Web 应用,安全等级高。
使用方式
资料提供了 JWT 在 Node.js 中的实现示例,包括令牌生成与认证中间件。
令牌生成使用 jsonwebtoken 库,分别签发访问令牌(accessToken,有效期 15 分钟,载荷包含 userId 与 role)和刷新令牌(refreshToken,有效期 7 天,载荷包含 userId 与 type: 'refresh'),密钥分别来自环境变量 JWT_SECRET 与 REFRESH_SECRET。
认证中间件会校验 Authorization 请求头:要求存在且以 'Bearer ' 开头,按空格拆分后必须为两部分,且令牌非空;随后使用 jwt.verify 校验令牌,成功时将解码结果挂载到 req.user 并放行,失败时返回 401 与相应错误信息(如 Malformed authorization header、No token provided、Invalid token)。
安全要求包括:始终使用 HTTPS;将令牌存储在 HttpOnly Cookie 中而非 localStorage;使用 bcrypt 哈希密码(cost factor 12 及以上);在认证端点上实施限流;定期轮换密钥;绝不在 URL 中传输令牌。
安全响应头示例通过中间件设置:X-Content-Type-Options: nosniff、X-Frame-Options: DENY、Strict-Transport-Security: max-age=31536000。
资料还提到可参考 references/python-flask.md,其中包含:带基于角色访问控制装饰器的 Flask JWT、使用 Authlib 集成 Google OAuth 2.0、以及带安全哈希的 API 密钥认证。
适用场景
- 认证系统构建
- 第三方集成
- 服务间通信
限制与注意事项
资料列出应避免的常见错误:存储明文密码、使用弱 JWT 密钥、忽略令牌过期、在生产环境禁用 HTTPS、记录敏感令牌。
关于该技能的具体安装方式、收费模式、支持平台与运行环境等信息,资料中暂未提供。