安全
Turnstile 验证
在认证 UI 与后端验证流程中集成 Cloudflare Turnstile。
MuseMVP 使用 Cloudflare Turnstile 保护敏感认证端点免受机器人和滥用。Turnstile 是隐私友好的 CAPTCHA 替代方案,无需用户完成繁琐验证即可完成人机校验。
配置步骤
创建站点
前往 Cloudflare Turnstile 创建站点。

复制 Site Key 和 Secret Key。

设置 NEXT_PUBLIC_TURNSTILE_SITE_KEY 和 TURNSTILE_SECRET_KEY。站点密钥是公开的,并在构建期写入。两项都非空时才会显示验证码。
常见问题
调试建议
先确认环境变量中的两项是否正确,再排查业务逻辑。
| 问题 | 解决方案 |
|---|---|
| 组件不渲染 | 在应用环境中设置站点密钥和服务端密钥。两项都有值时,忘记密码页才会拿到站点密钥 |
| 验证失败 | 确保环境中的服务端密钥与 Cloudflare 中的 Secret 一致 |
| 环境混用 | 测试和生产 Key 不能混用 |
可选:禁用 Captcha
要禁用 Turnstile,将环境变量中的站点密钥或服务端密钥留空即可。captcha 插件不会加载,忘记密码表单也不会显示验证码。
当前 Better Auth captcha 插件只显式配置 /forget-password/email-otp 与 /email-otp/reset-password。不要假定所有注册/登录/API 都自动受同一验证码门禁。新增受保护端点需同时实现服务端验证并加失败测试。