验证码设置
这页解决什么问题
管理员访问登录页时,不会直接先输入 TOTP 或点 Passkey,而是会先通过一层人机验证。
这页负责讲清楚:
系统设置 → 验证码这个页签到底控制什么PoW和Cloudflare Turnstile有什么区别- 切换验证码后,登录流程会发生什么变化
先理解登录顺序
登录链路通常是:
- 先完成人机验证
- 再输入
TOTP,或使用Passkey - 登录成功后创建会话
- 在直连模式下,同时把当前出口 IP 自动加入白名单
也就是说,验证码是整个认证流程的第一步,不是一个可有可无的装饰项。
如果你想先从整体理解认证,再回看这页,建议先读:
在哪里配置
路径:系统设置 → 验证码
这个页签控制的是:
- 登录页使用哪一种人机验证
- 如果选择
Cloudflare Turnstile,需要保存哪两个密钥
它不负责:
- 绑定
TOTP - 管理
Passkey - 配置 Cloudflare Tunnel
当前支持哪两种验证码
| 类型 | 更适合谁 | 需要额外准备什么 |
|---|---|---|
PoW 验证码 | 想先用内置方案、暂时不依赖 Cloudflare 的用户 | 只要服务端环境已准备好即可 |
Cloudflare Turnstile | 已在使用 Cloudflare,想把登录页的人机验证切换到 Cloudflare 的用户 | 需要 site_key 和 secret_key |
PoW 和 Turnstile 应该怎么选
优先选 PoW 的情况
- 你只是先把链路跑通
- 你目前主要通过 IP、局域网或临时地址访问
- 你还没有稳定的公网域名
优先选 Turnstile 的情况
- 你已经有 Cloudflare 账号
- 登录页已经通过稳定域名访问
- 你希望使用 Cloudflare 的人机验证体验
启用 Cloudflare Turnstile 时要填什么
如果你把验证码类型切到 Cloudflare Turnstile,必须同时填写:
站点密钥:也就是site_key密钥:也就是secret_key
两者缺任何一个,都不能正常启用。
想看完整启用步骤,直接读:
切换验证码后,登录页会怎么变
- 当验证码通过后,
TOTP输入框或Passkey 一键登录入口才会继续显示 - 如果验证码提供商当前不可用,登录页会直接提示不可用原因
Turnstile在当前产品里使用的是可见控件,尺寸固定为normal
这也是为什么:
切换验证码,不只是换一个按钮文案,而是会真正影响所有外部登录请求的入口体验。
启用后的自检顺序
建议按下面顺序检查:
- 保存验证码设置
- 打开真正会给管理员使用的登录页
- 先确认人机验证控件能显示
- 再确认验证通过后,
TOTP或Passkey能继续使用 - 最后再做一次完整登录
常见问题
我切到了 Turnstile,但登录页没有出现控件
优先检查:
site_key是否为空- Cloudflare widget 的 hostname 是否包含当前登录域名
- 浏览器是否拦掉了
challenges.cloudflare.com脚本
我已经通过验证码了,但服务端还提示验证失败
优先检查:
secret_key是否填错- 管理员是否保存成功
- 当前网络是否能连到 Cloudflare 的
siteverify服务
我切到 Turnstile 后,测试环境反而更难用了
如果你现在主要还是靠:
- 内网地址
- 临时域名
- 裸 IP
那么先继续用 PoW 往往更稳,等正式公网域名确定后再切到 Turnstile 会更合适。
