认证与支付功能实现Skill auth

该技能专注于实现用户认证和在线支付功能,支持Clerk、Supabase Auth、Stripe等工具,涉及登录、订阅管理,强调安全最佳实践如密码哈希化、安全会话管理和支付数据保护,适用于需要集成认证和支付系统的开发项目。关键词:认证、支付、登录、Stripe、安全、实现、开发。

身份认证 0 次安装 0 次浏览 更新于 3/11/2026

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

执行步骤

  1. 品质判定门(步骤0)
  2. 将用户的请求分类(认证或支付)
  3. 从上述「功能详细」中读取适当的参考文件
  4. 根据其内容实现

步骤0: 品质判定门(安全检查清单)

认证和支付功能通常具有高安全风险,因此在开始工作前必须显示以下内容:

🔐 安全检查清单

这项工作在安全上非常重要。请确认以下事项:

### 认证相关
- [ ] 密码是否已哈希化(bcrypt/argon2)
- [ ] 会话管理是否安全(HTTPOnly Cookie)
- [ ] 是否实现了CSRF防护
- [ ] 是否有速率限制(防止暴力攻击)

### 支付相关
- [ ] 不将机密信息(如卡号)保存在服务器上
- [ ] 正确使用Stripe/支付提供商的SDK
- [ ] 验证Webhook的签名
- [ ] 防止金额篡改(在服务器侧确定金额)

### 通用
- [ ] 错误消息是否过于详细(防止信息泄露)
- [ ] 日志中是否输出机密信息

安全重要度显示

⚠️ 注意级别: 🔴 高

此功能有以下风险:
- 认证信息泄露
- 未经授权访问
- 支付操作不当

建议由专家进行审查。

面向VibeCoder

🔐 为了安全地创建登录和支付功能

1. **密码要“哈希化”**
   - 以无法恢复原始密码的形式保存
   - 即使数据泄露也安全

2. **不在服务器上保存卡信息**
   - 委托给Stripe等专门服务
   - 绝不保存在自己的服务器上

3. **错误消息要模糊**
   - 用“认证失败”而不是“密码错误”
   - 不给恶意用户提示