mcpField
R
replica-backend

replica-backend

github.com/jakeschincariol开发6.3k705 次安装4 周前更新
代码仓库

关于 replica-backend

replica-backend 是用于实现应用复刻版后端的开发技能,依据 `replica/architecture.md` 编写迁移和服务端代码,并维护后端清单。内容涵盖认证、数据库、支付、邮件、集成与安全,支付流程先使用测试模式。

主要功能

  1. 01依据 architecture.md 实现后端
  2. 02认证与会话指导
  3. 03数据库迁移和访问控制
  4. 04Stripe 测试模式支付流程
  5. 05邮件、任务与集成指导
  6. 06安全清单与后端记录

适用场景

  1. 01为应用复刻版构建后端功能
  2. 02添加验证注册和账户访问
  3. 03实现测试模式订阅
  4. 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