name: 认证 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: [“读取”, “写入”, “编辑”, “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. **错误消息要模糊**
- 使用“认证失败”而非“密码错误”
- 不给恶意人士提供线索