Skip to content

验证码设置

这页解决什么问题

管理员访问登录页时,不会直接先输入 TOTP 或点 Passkey,而是会先通过一层人机验证。

这页负责讲清楚:

  1. 系统设置 → 验证码 这个页签到底控制什么
  2. PoWCloudflare Turnstile 有什么区别
  3. 切换验证码后,登录流程会发生什么变化

先理解登录顺序

登录链路通常是:

  1. 先完成人机验证
  2. 再输入 TOTP,或使用 Passkey
  3. 登录成功后创建会话
  4. 在直连模式下,同时把当前出口 IP 自动加入白名单

也就是说,验证码是整个认证流程的第一步,不是一个可有可无的装饰项。

如果你想先从整体理解认证,再回看这页,建议先读:

在哪里配置

路径:系统设置 → 验证码

这个页签控制的是:

  • 登录页使用哪一种人机验证
  • 如果选择 Cloudflare Turnstile,需要保存哪两个密钥

它不负责:

  • 绑定 TOTP
  • 管理 Passkey
  • 配置 Cloudflare Tunnel

当前支持哪两种验证码

类型更适合谁需要额外准备什么
PoW 验证码想先用内置方案、暂时不依赖 Cloudflare 的用户只要服务端环境已准备好即可
Cloudflare Turnstile已在使用 Cloudflare,想把登录页的人机验证切换到 Cloudflare 的用户需要 site_keysecret_key

PoWTurnstile 应该怎么选

优先选 PoW 的情况

  • 你只是先把链路跑通
  • 你目前主要通过 IP、局域网或临时地址访问
  • 你还没有稳定的公网域名

优先选 Turnstile 的情况

  • 你已经有 Cloudflare 账号
  • 登录页已经通过稳定域名访问
  • 你希望使用 Cloudflare 的人机验证体验

启用 Cloudflare Turnstile 时要填什么

如果你把验证码类型切到 Cloudflare Turnstile,必须同时填写:

  • 站点密钥:也就是 site_key
  • 密钥:也就是 secret_key

两者缺任何一个,都不能正常启用。

想看完整启用步骤,直接读:

切换验证码后,登录页会怎么变

  • 当验证码通过后,TOTP 输入框或 Passkey 一键登录 入口才会继续显示
  • 如果验证码提供商当前不可用,登录页会直接提示不可用原因
  • Turnstile 在当前产品里使用的是可见控件,尺寸固定为 normal

这也是为什么:

切换验证码,不只是换一个按钮文案,而是会真正影响所有外部登录请求的入口体验。

启用后的自检顺序

建议按下面顺序检查:

  1. 保存验证码设置
  2. 打开真正会给管理员使用的登录页
  3. 先确认人机验证控件能显示
  4. 再确认验证通过后,TOTPPasskey 能继续使用
  5. 最后再做一次完整登录

常见问题

我切到了 Turnstile,但登录页没有出现控件

优先检查:

  1. site_key 是否为空
  2. Cloudflare widget 的 hostname 是否包含当前登录域名
  3. 浏览器是否拦掉了 challenges.cloudflare.com 脚本

我已经通过验证码了,但服务端还提示验证失败

优先检查:

  1. secret_key 是否填错
  2. 管理员是否保存成功
  3. 当前网络是否能连到 Cloudflare 的 siteverify 服务

我切到 Turnstile 后,测试环境反而更难用了

如果你现在主要还是靠:

  • 内网地址
  • 临时域名
  • 裸 IP

那么先继续用 PoW 往往更稳,等正式公网域名确定后再切到 Turnstile 会更合适。

相关阅读

QQ群:1081609274