- 支持试读
准备工作
本专题需要事先做的准备工作。专题完结之后,你可以通过 zliu.tech、liziqi.ggff.net、zlusi.me和reqwest.me 体验我们提供的域名分发服务。 Cloudflare 常用 API
本章我们讨论本专题需要的 Cloudflare API。- 支持试读
项目初始化及配置
本章将对我们的项目进行初始化,然后编写配置。 数据及模型定义
本章我们将对数据表和对应的数据模型进行定义。数据库操作模块
本章我们将简单实现一些数据库的操作。- 支持试读
注册 Cloudflare Turnstile 并将其集成到 AXUM 应用中
本章将讨论注册 Cloudflare Turnstile 并将其集成到 AXUM 应用中。 - 支持试读
开发前端 SPA
为了更直观的进行 API 开发,我们先来编写前端 SPA。 用户注册及邮箱激活
本章将实现用户注册功能:包括数据库操作、邮箱激活账号等。本章包含后端和前端功能。用户登录、退出登录及鉴权中间件
本章将实现用户登录和退出登录功能:包括会话管理、鉴权中间件等。本章包含后端和前端功能。用户注册域名
本章将实现用户注册域名功能:包括数据库操作、CF API 封装调用等。本章包含后端和前端功能。用户管理域名
本章将实现用户管理域名功能:包括修改、删除域名的数据库操作、CF API 封装调用等。本章包含后端和前端功能。- 支持试读
用户积分变动记录
本章将实现用户查看本账号积分变动功能。本章包含后端和前端功能。 用户修改密码
本章将实现用户修改密码功能。本章包含后端和前端功能。后台管理
本章将实现后台管理功能。本章包含后端和前端功能。由于后台大部分功能和用户面板的功能重合,所以后台管理功能将集中在本章一个大章来进行全部讲解。把 React 开发的 SPA 嵌入 AXUM 应用中
本章将讨论把 React 开发的 SPA 嵌入 AXUM 应用中,并将其部署到生产环境。
注册 Cloudflare Turnstile 并将其集成到 AXUM 应用中
- 6969
- 2024-12-11 13:50:55
本章将讨论注册 Cloudflare Turnstile 并将其集成到 AXUM 应用中。
和 Google reCaptcha 以及 hCaptcha 类似,Cloudflare Turnstile 也是用于人机验证的,和前两者不同的是,Turnstile 不再要求用户完成各种奇奇怪怪的挑战,而是利用自身的算法,「无感」的进行人机验证,用户体验提升非常大。
注册 Turnstile
登录到 Cloudflare 用户面板,依次点击:Turnstile - Add widget,如下图:

输入名字,然后依次进行如下操作:点击 Add Hostnames - 选择要添加的域名 - 点击 Add 按钮。如下图:

之后,点击页面右下角的 Create 按钮:

然后你将看到成功页面。该页面显示了 Site Key 和 Secret Key。需要把它们复制保存起来,后面将会用到。

Turnstile 的两个 Key
注册之后,我们会得到两个 Key,它们的作用分别是:
- Site Key:用于客户端,在显示人机验证小部件时使用
- Secret Key:用于服务端,在进行人机验证合法性校验时使用
本地开发
注册时生成的两个 Key 不能直接用于本地开发,因为它们和域名绑定。除非你使用某些技术,将本地开发环境绑定到注册 Turnstile 时添加的域名。相比来说,使用 Turnstile 提供的测试 Key 会简单很多。以下是 Turnstile 的测试 Key:
- Site Key:
1x00000000000000000000AA - Secret Key:
1x0000000000000000000000000000000AA
将 Turnstile 集成到 AXUM 应用中
结构体 Response
#[derive(Deserialize)]
pub struct Response {
pub success: bool,
}
向 Turnstile 服务器请求验证
集成多种人机验证
AXUM 中文网集成了 Turnstile 和 hCaptcha 两种人机验证,如果你有兴趣,可以查看源码。本项目没有这种需求。
将 Turnstile 集成到项目前端
由于我们前端使用 React 构建,已经有封装好的组件供我们直接使用了。如果你想了解最原始的集成方式,可以查看官方文档。
说明:本章代码只是当前状态,后续章节可能会对配置、数据库定义、模型定义、结构体定义、函数定义等进行修改,请留意。
本章代码位于04.注册Turnstile并集成到AXUM中分支。
