mirror of
https://github.com/Silentely/eSIM-Tools.git
synced 2026-09-03 06:24:20 +08:00
feat: 实现多提供商验证码系统,支持 Cloudflare Turnstile 和 Google reCAPTCHA
- 新增 CaptchaManager 类,统一管理 Turnstile 和 reCAPTCHA 验证码的初始化和 token 管理 - 扩展 BFF 代理支持多验证码提供商,根据配置自动切换验证逻辑 - 新增公共配置端点,动态下发验证码提供商配置到前端 - 重构 API 管理器,统一处理验证码 token 的头部和载荷注入 - 更新 CSP 策略,支持两种验证码服务的域名和资源 - 保留原有 Turnstile 功能的同时,支持 reCAPTCHA 作为备选方案 - 提供灵活的配置选项,可通过环境变量控制提供商开关和强制验证
This commit is contained in:
@@ -17,12 +17,19 @@ LOG_LEVEL=info
|
||||
CORS_ORIGIN=*
|
||||
ALLOWED_ORIGIN=https://esim.cosr.eu.org
|
||||
|
||||
# 验证码配置(turnstile | recaptcha | off)
|
||||
CAPTCHA_PROVIDER=turnstile
|
||||
|
||||
# Cloudflare Turnstile 配置
|
||||
TURNSTILE_SITE_KEY=
|
||||
TURNSTILE_SECRET_KEY=
|
||||
# 设为 false 可在紧急情况下跳过 BFF Turnstile 校验(默认 true)
|
||||
TURNSTILE_ENFORCE=true
|
||||
|
||||
# Google reCAPTCHA v2 配置(CAPTCHA_PROVIDER=recaptcha 时必填)
|
||||
RECAPTCHA_SITE_KEY=
|
||||
RECAPTCHA_SECRET_KEY=
|
||||
|
||||
# 受保护函数访问密钥(要求调用方在 Header x-esim-key 或 body.authKey / ?authKey 携带匹配值)
|
||||
# ⚠️ 必填:Server 与 Functions/BFF 共享的访问密钥
|
||||
# 🔐 生成强随机密钥: openssl rand -hex 32
|
||||
|
||||
Reference in New Issue
Block a user