952 字
5 分钟
在前端给网站添加Cloudflare Turnstile
gemini-aiAI 摘要
Gemini 2.5 Pro
本指南将详细介绍如何将 Cloudflare Turnstile 集成到您的前端网站中来装B用...

Cloudflare Turnstile是一种现代化的人机验证解决方案,大多数人都应该在注册账户或发表评论时见过,某种程度上Turnstile已经成为了小网站网站装B用的,因为主流的大公司比如openai都是用的这个,所以本文将指导你如何在前端添加Turnstile。

WARNING

本文只是教你在前端添加Turnstile装B用,如果你真正想使用Turnstile,请阅读官方文档

注册Turnstile#

要开始使用Cloudflare Turnstile,首先需要注册Cloudflare账号并获取必要的API密钥:

  1. 访问Cloudflare官网并点击登录。
  2. 在Cloudflare控制台左侧的边栏找到 Turnstile ,点击 添加小组件
  3. 在创建Turnstile的页面上,填写以下信息:
    • 小组件名称:只是一个备注类型的东西,随便填。
    • 主机名管理:选择您想要添加Cloudflare Turnstile的网站的域名。
    • 小组件模式:选 托管模式 就行
  4. 点击 创建
  5. 在Turnstile管理小组件页面上,你会看到 站点密钥密钥 两个Key。稍后我们将使用此密钥来集成Turnstile组件。

前端添加Turnstile组件#

现在,我们将在网站前端添加Turnstile组件。

基础HTML集成#

在网站HTML文件中的部分添加以下代码:

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

在你想放置Turnstile组件的地方添加以下代码:

<div class="cf-turnstile" data-sitekey="0x4AAAAAAB40GXpBor6G7GZL" data-theme="light"></div>

自定义样式和位置#

如果默认样式不喜欢,可以通过一些参数进行自定义:

NOTE

下文的每一段代码都会在下方附上使用该代码的Turnstile组件示例

小部件尺寸#

Turnstile 小部件可以有两个不同的固定大小或一个灵活的宽度大小。

大小宽度高度
正常300像素65像素
灵活100%(最小:300px)65像素
紧凑150像素140像素
  • normal:默认大小
  • flexible:自动适应容器宽度,响应式设计。
  • compact:紧凑型小部件,更小的宽度。

你可以通过 data-size 属性来设置小部件的大小。

  • 正常大小(默认)

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>"></div>
  • 灵活大小

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-size="flexible"></div>
  • 紧凑型

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-size="compact"></div>

主题选项#

自定义小部件的明/暗色外观。

  • auto(默认):自动模式
  • light:浅色主题,高对比度
  • dark:深色主题。

你可以通过 data-theme 属性来设置小部件的主题。

  • 自动主题(默认)

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>"></div>
  • 浅色主题

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-theme="light"></div>
  • 深色主题

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-theme="dark"></div>

外观模式#

使用外观模式控制小组件何时对访客可见。

  • always(默认):始终可见
  • execute:仅在挑战开始后才可见。例如仅在用户开始填写表单时才显示。
  • interaction-only:仅当需要交互时,小组件才会显示,只有遇到可疑的机器人才会遇到交互式挑战

你可以通过 data-appearance 属性来设置小部件的外观模式。

  • 始终可见(默认)

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>"></div>
  • 仅在挑战开始后可见

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-appearance="execute"></div>
  • 仅当需要交互时可见

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-appearance="interaction-only"></div>

重试行为#

控制 Turnstile 如何处理失败的挑战。

data-retry 属性可以控制重试行为:

  • auto(默认):自动重试失败的挑战。
  • never (从不):禁用自动重试。

data-retry-interval 属性可以控制重试尝试之间的时间(默认:8000ms)

  • 自动重试(默认)

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>"></div>
  • 禁用重试

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-retry="never"></div>
  • 自定义重试间隔

    <div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-retry-interval="0000"></div>

结尾#

至此,你已经成功在网站前端添加了Cloudflare Turnstile组件。现在,当用户访问你的网站时,他们将看到一个Turnstile小部件,反正加着玩吧。

在前端给网站添加Cloudflare Turnstile
https://thw.lol/posts/cf-turnstile/
作者
THW
发布于
2025-10-04
许可协议
CC BY-NC-SA 4.0