SuperAPI AI 工具集

astro-forms

前端与建站

查看项目

更新于 10-16 05:46

技能介绍

用途:为 Astro 项目提供线索型表单的服务端处理流水线,顺序为校验→反垃圾→存储→发信→跳转→统计。表单 UI、字段布局与样式不在本技能范围,仅 modifiers.md 作为布局参考。

主要能力与建议栈:Zod 服务端校验;Cloudflare Turnstile 隐形验证与蜜罐字段;Cloudflare KV 限流;Resend 主发信、Brevo 作为失败回退;Google Sheets API(服务账号,直连无 webhook)存储;Cloudflare Workers 运行,入口为 export default { fetch }。标准提交字段含 leadId、formId、sourcePage、submittedAt、name、email、phone、message、ipHash(IP 加每日盐的 SHA-256)、userAgent、UTM 与 referrer。

必要用法:按实现顺序建 schema、复制 assets/boilerplate/lib/ 到 src/lib/forms/、在 wrangler.toml 配 KV 绑定并用 wrangler secret put 配置密钥、创建 Google 服务账号并共享表格、前端 POST 到 /api/submit、用 wrangler dev 本地测试、wrangler deploy 部署。后端环境变量通过 Workers 的 env 参数访问,不能使用 import.meta.env;Astro SSR API 路由中应使用 import { env } from 'cloudflare:workers',因为 Astro.locals.runtime.env 在 v6 已移除。环境变量包括 RESEND_API_KEY、BREVO_API_KEY、GOOGLE_SERVICE_ACCOUNT_EMAIL、GOOGLE_PRIVATE_KEY、GOOGLE_SHEET_ID、TURNSTILE_SITE_KEY、TURNSTILE_SECRET_KEY、IP_HASH_SALT、SITE_URL。

策略与限制:所有输入必须服务端校验;反垃圾至少两层(蜜罐、提交时间检查为必需,Turnstile 与限流推荐,限流为每 IP 每小时 5 次);每次有效提交必须持久化,客户确认邮件失败仅记录并继续,商家通知失败需告警;重定向到 /thank-you 并触发 GTM form_submit;邮件模板中转义用户输入;对同一邮箱与 formId 在 60 秒内去重。thank-you 与 404 页面禁止放表单;部署命令需带 --keep-vars,否则仪表盘明文变量会被清空。支持 en-GB 与 hu-HU 本地化,默认 en-GB。

与其他技能的配合:服务端流水线由本技能处理,客户端转化追踪由 soborbo-tracking 技能处理,二者通过 event_id 隐藏字段关联。具体定价、平台支持范围等资料暂未提供。