用途:该技能面向 Web 与移动应用中的认证和授权实现,帮助开发者构建登录/注册流程、集成社交登录、实现多因素认证、为企业客户配置 SSO、设计授权模型,以及在认证提供商之间迁移。
主要能力:覆盖 OAuth 2.0 流程(含 PKCE 的授权码模式、客户端凭据模式)、JWT 管理(访问令牌、刷新令牌、轮换)、会话管理策略、多因素认证(TOTP、WebAuthn/passkeys)、认证库集成(NextAuth/Auth.js v5、Clerk、Supabase Auth、Lucia)、SSO 协议(SAML、OIDC)以及授权模式(RBAC、ABAC)。
核心原则:不要自行实现加密,密码哈希应使用 bcrypt、argon2 等成熟库;采用纵深防御,叠加会话校验、CSRF 防护、速率限制与异常检测;令牌即凭据,需通过 httpOnly cookie 或加密存储,仅经 HTTPS 传输并定期轮换;默认最小权限,通过显式角色分配提权;为密码重置、MFA 恢复码、邮箱验证、账户锁定等设计账户恢复流程。
关键模式:
- NextAuth(Auth.js v5)配合 OAuth 与数据库会话:适用于需要社交登录、邮箱密码或魔法链接且使用服务端会话的 Next.js 应用,示例包含 GitHub、Google、Credentials 提供者、Prisma 适配器、数据库会话策略、session 与 signIn 回调以及中间件路由保护。数据库会话比 JWT 会话更安全,可即时撤销且不向客户端暴露声明。
- JWT 访问/刷新令牌模式:适用于 SPA、移动应用或微服务间需要无状态校验的 API 认证。访问令牌 15 分钟,刷新令牌为不透明随机值并服务端存储,支持轮换、哈希存储与验证中间件,web 端以 httpOnly、Secure、SameSite=Strict 的 cookie 传递。短有效期限制令牌被盗后的影响,刷新令牌轮换可检测令牌盗用。
- 多因素认证(TOTP):用于密码之外的第二因素,尤其适合管理员账户和敏感操作。流程包含生成密钥与二维码、验证码校验完成绑定、生成并哈希存储一次性恢复码、登录时校验 TOTP 或恢复码。TOTP 支持广泛、不依赖易受 SIM 交换攻击的短信、可离线使用。
- 基于角色的访问控制(RBAC):用于不同用户需要不同资源访问级别的场景。定义权限常量与角色映射,提供权限检查中间件与 React 端 usePermission 钩子,服务端强制安全、客户端优化体验。
附带的密码哈希参考表对比 argon2id、bcrypt、scrypt、PBKDF2 与 MD5/SHA-256 的推荐程度、成本因子与说明;反模式表列出明文存储密码、JWT 放 localStorage、长期访问令牌、仅客户端检查权限、自研 OAuth、仅用短信 2FA 等做法及更优替代方案。安装命令、平台与收费等信息资料暂未提供。