SuperAPI AI 工具集

auth-implementation-patterns

编程与开发

查看项目

更新于 10-15 21:38

技能介绍

该技能用于实现认证与授权系统,重点是构建安全、可扩展的访问控制。适用场景包括:实现用户认证、保护 REST 或 GraphQL API、加入 OAuth2 或社交登录、实现基于角色的访问控制(RBAC)、设计会话管理、迁移认证系统、调试认证问题、实现 SSO 或多租户。

核心概念分为两部分。认证(AuthN)回答“你是谁”,包括验证身份(用户名密码、OAuth、生物识别)、签发凭证(会话、令牌)、管理登录与注销。授权(AuthZ)回答“你能做什么”,包括权限检查、RBAC、资源归属校验与策略执行。

认证策略有三类。基于会话:服务端保存会话状态,会话 ID 放在 Cookie 中,传统、简单、有状态。基于令牌(JWT):无状态、自包含、可水平扩展、可存储声明。OAuth2 / OpenID Connect:委托认证,支持社交登录(Google、GitHub)和企业 SSO。更详细的模式与示例位于 references/details.md,当上层导航不足时可读取该文件。

最佳实践:绝不存储明文密码,始终用 bcrypt 或 argon2 哈希;使用 HTTPS 加密传输;访问令牌保持短期有效(最多 15 至 30 分钟);Cookie 设置 httpOnly、secure、sameSite;校验所有输入(邮箱格式、密码强度);对认证端点限流以防暴力破解;会话认证需实现 CSRF 防护;定期轮换密钥(JWT 密钥、会话密钥);记录登录尝试与失败认证等安全事件;尽可能启用 MFA。

常见陷阱:弱密码,应强制强密码策略;把 JWT 放在 localStorage 易受 XSS 攻击,应使用 httpOnly Cookie;令牌不过期,令牌应设置过期;只在客户端做认证校验,必须始终在服务端验证;不安全的密码重置,应使用带有效期的安全令牌;缺少限流,易受暴力破解;信任客户端数据,始终在服务端校验。

资料未提供具体安装命令、代码示例或收费信息,暂未提供。