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. **错误消息要模糊**
- 不说「密码错误」而是说「认证失败」
- 不给恶意的人提示