关于 replica-backend
replica-backend 是用于实现应用复刻版后端的开发技能,依据 `replica/architecture.md` 编写迁移和服务端代码,并维护后端清单。内容涵盖认证、数据库、支付、邮件、集成与安全,支付流程先使用测试模式。
主要功能
- 01依据 architecture.md 实现后端
- 02认证与会话指导
- 03数据库迁移和访问控制
- 04Stripe 测试模式支付流程
- 05邮件、任务与集成指导
- 06安全清单与后端记录
适用场景
- 01为应用复刻版构建后端功能
- 02添加验证注册和账户访问
- 03实现测试模式订阅
- 04检查后端安全与部署准备情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jakeschincariol/ replica-skill --skill replica-backend安装后在 Claude Code 中输入/replica-backend确认已加载。
详细介绍
replica-backend
读取 replica/architecture.md。编写迁移文件和服务端代码,并及时更新
replica/backend.md(下方的检查清单)。
规则
- 仅使用官方公开 API 和用户自己的密钥。 切勿调用原应用的私有端点,切勿复用其 OAuth 客户端,也切勿通过原应用转发。
- 由用户创建账号和密钥。 Claude 不会注册服务,也不会输入密码、银行卡信息或有效密钥。用户创建 Stripe、Supabase、Resend 或 Google Cloud 项目,并将密钥放入
.env.local。 Claude 会编写.env.example,列出所有变量名,但不填写任何值。 - 先使用测试模式。 在 replica-deploy 之前,使用 Stripe 测试密钥和测试卡。
身份验证
- 电子邮件注册并验证、密码重置;如果原应用支持,还要提供 magic link。使用用户自己的开发者应用进行 OAuth(Google、Apple)。
- 会话:使用仅限 HTTP 的安全 Cookie。支持退出所有设备。
- 如果反向分析图中有角色和团队,则实现 owner、admin、member,并提供一个函数,用于判断“此用户是否可以对这条记录执行此操作”。
- 账户删除功能必须真正删除数据。对于提供注册功能的应用,Apple 要求支持此功能。
数据库
- 根据
architecture.md编写迁移文件并纳入版本控制,通过脚本运行。 - 为每张表设置访问规则:在 Supabase 上使用行级安全策略,或在每次查询中调用授权函数。进行测试:第二个用户必须无法获取任何数据。
- 提供包含逼真虚构数据的种子脚本(不得使用真实人物的数据)。
- 启用备份(主机提供的每日备份也算,但要确认已启用)。
付款
- 使用 Stripe Checkout 支持用户注册付费计划,使用 Customer Portal 支持用户更改计划和取消订阅。不要自行构建银行卡表单。
- Webhook:验证签名,存储事件 ID,并确保每个处理程序都具备幂等性(Stripe 会重试)。处理
checkout.session.completed、customer.subscription.updated、customer.subscription.deleted、invoice.payment_failed。 - 订阅状态保存在你的数据库中,由 webhook 更新并由应用读取。绝不要信任客户端。
- 取消订阅只需点击一次即可完成。难以取消的计费是大多数应用最常见的投诉之一,而且在许多地方属于违法行为。
电子邮件和任务
- 通过 Resend 或 Postmark,从你自己的域名发送事务性电子邮件。 模板需重新编写。
- 为所有基于时间的任务(提醒、摘要、同步、清理)设置任务,并支持重试和死信日志。时间以 UTC 保存,并按用户所在时区显示。
集成
对于功能矩阵中的每项集成:记录官方 API、所需的 OAuth 权限范围(尽可能少)、提供商的审核流程和速率限制。
对于 Calendar 等 Google 权限范围,公开发布前必须通过 Google 的 OAuth 验证,这需要数周时间。尽早启动,并在 backend.md 中注明。
安全检查清单
- 密钥仅存放在环境变量中,
.env*已加入.gitignore,客户端包中不含任何密钥 - 每个路由都在服务端验证输入(使用 zod 或类似工具)
- 每次读取和写入都检查授权,并使用第二个用户进行测试
- 对身份验证、注册,以及任何会发送电子邮件或 SMS 的操作设置速率限制
- Webhook 验证签名
- 上传:限制大小和类型,并从独立域名或存储桶提供文件
- URL 或日志中不包含用户数据
- 审核依赖项(
npm audit) - 隐私政策列出每个数据处理方(Stripe、Resend、主机、分析服务)
输出
实现可用的身份验证、数据库、测试模式下的付款、电子邮件和各项集成,
并提供 .env.example;勾选 replica/backend.md 中的检查清单,并更新功能矩阵中的行。下一步:/replica-test。
评论
支持 Markdown