name: auth description: “实现认证和支付功能。支持Clerk、Supabase Auth、Stripe。当用户提到登录、认证、支付、订阅或Stripe时使用。不要用于:一般UI工作、数据库设计或非认证功能。” description-en: “使用Clerk、Supabase Auth或Stripe实现认证和支付功能。当用户提到登录、认证、支付、订阅或Stripe时使用。不要用于:一般UI工作、数据库设计或非认证功能。” description-ja: “实现认证和支付功能。支持Clerk、Supabase Auth、Stripe。当用户提到登录、认证、支付、订阅或Stripe时使用。不要用于:一般UI工作、数据库设计或非认证功能。” allowed-tools: [“Read”, “Write”, “Edit”, “Bash”] user-invocable: false
认证技能
负责实现认证和支付功能的技能群。
功能详细
| 功能 | 详细 |
|---|---|
| 认证功能 | 参见 references/authentication.md |
| 支付功能 | 参见 references/payments.md |
执行步骤
- 品质判定门(步骤0)
- 将用户的请求分类(认证或支付)
- 从上述「功能详细」中读取适当的参考文件
- 根据其内容实现
步骤0: 品质判定门(安全检查清单)
认证和支付功能通常具有高安全风险,因此在开始工作前必须显示以下内容:
🔐 安全检查清单
这项工作在安全上非常重要。请确认以下事项:
### 认证相关
- [ ] 密码是否已哈希化(bcrypt/argon2)
- [ ] 会话管理是否安全(HTTPOnly Cookie)
- [ ] 是否实现了CSRF防护
- [ ] 是否有速率限制(防止暴力攻击)
### 支付相关
- [ ] 不将机密信息(如卡号)保存在服务器上
- [ ] 正确使用Stripe/支付提供商的SDK
- [ ] 验证Webhook的签名
- [ ] 防止金额篡改(在服务器侧确定金额)
### 通用
- [ ] 错误消息是否过于详细(防止信息泄露)
- [ ] 日志中是否输出机密信息
安全重要度显示
⚠️ 注意级别: 🔴 高
此功能有以下风险:
- 认证信息泄露
- 未经授权访问
- 支付操作不当
建议由专家进行审查。
面向VibeCoder
🔐 为了安全地创建登录和支付功能
1. **密码要“哈希化”**
- 以无法恢复原始密码的形式保存
- 即使数据泄露也安全
2. **不在服务器上保存卡信息**
- 委托给Stripe等专门服务
- 绝不保存在自己的服务器上
3. **错误消息要模糊**
- 用“认证失败”而不是“密码错误”
- 不给恶意用户提示