关于 auth-implementation-patterns
为应用和 API 实现身份认证与授权的指南,介绍会话、令牌及 OAuth2/OpenID Connect 方案,并说明安全实践和常见问题。
主要功能
- 01区分身份认证与授权
- 02比较会话和令牌策略
- 03涵盖 OAuth2 与 OpenID Connect
- 04采用安全的会话及令牌实践
- 05识别常见实现问题
适用场景
- 01为应用添加登录功能
- 02保护 REST 或 GraphQL API
- 03实现 RBAC、SSO 或多租户
- 04排查身份认证流程问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill auth-implementation-patterns安装后在 Claude Code 中输入/auth-implementation-patterns确认已加载。
附带文件references/details.md
详细介绍
认证与授权实现模式
使用行业标准模式和现代最佳实践,构建安全、可扩展的认证与授权系统。
何时使用本技能
- 实现用户认证系统
- 保护 REST 或 GraphQL API
- 添加 OAuth2/社交登录
- 实现基于角色的访问控制(RBAC)
- 设计会话管理
- 迁移认证系统
- 调试认证问题
- 实现 SSO 或多租户
核心概念
1. 认证与授权的区别
认证(AuthN):你是谁?
- 验证身份(用户名/密码、OAuth、生物识别)
- 签发凭证(会话、令牌)
- 管理登录/登出
授权(AuthZ):你能做什么?
- 权限检查
- 基于角色的访问控制(RBAC)
- 资源所有权验证
- 策略执行
2. 认证策略
基于会话:
- 服务端存储会话状态
- 会话 ID 存放在 cookie 中
- 传统、简单、有状态
基于令牌(JWT):
- 无状态、自包含
- 可水平扩展
- 可存储声明
OAuth2/OpenID Connect:
- 委托认证
- 社交登录(Google、GitHub)
- 企业 SSO
详细模式与完整示例
详细的模式文档位于 references/details.md。当上方的导航层级不够用时,请阅读该文件。
最佳实践
- 切勿存储明文密码:始终使用 bcrypt/argon2 进行哈希
- 使用 HTTPS:加密传输中的数据
- 短期访问令牌:最长 15-30 分钟
- 安全的 Cookie:httpOnly、secure、sameSite 标志
- 验证所有输入:邮箱格式、密码强度
- 对认证端点限流:防止暴力破解攻击
- 实现 CSRF 防护:适用于基于会话的认证
- 定期轮换密钥:JWT 密钥、会话密钥
- 记录安全事件:登录尝试、认证失败
- 尽可能使用 MFA:额外的安全层
常见陷阱
- 弱密码:强制执行强密码策略
- 在 localStorage 中存放 JWT:容易受到 XSS 攻击,请使用 httpOnly cookie
- 令牌无过期时间:令牌应当过期
- 仅客户端进行认证检查:始终在服务端验证
- 不安全的密码重置:使用带过期时间的安全令牌
- 无限流:容易受到暴力破解
- 信任客户端数据:始终在服务端验证
评论
支持 Markdown