前言
接上集,我们在 Typecho 后台添加了 reCAPTCHA
而这会我们来在 Typecho 后台添加 Cloudflare Turnstile
获取
首先打开 Cloudflare,在左边找到 Turnstile

1
点进去点这块的 添加站点

2
进去以后,站点名称随便写,域写你的域名,小组件模式选托管

3
然后把这两串记住,等会要用

4
安装
改的东西挺多的,理论上把 reCAPTCHA 那一期拉出来改改就能用,但是为了方便萌新,还是把完整示例贴出来
登录页面
将以下内容覆盖到 /admin/login.php
将以下内容覆盖到 /var/Widget/Login.php
将上面标注的字段换成自己的 站点密钥 和 密钥
注册页面
将以下内容覆盖到 /admin/register.php
将以下内容覆盖到 /var/Widget/Register.php
将上面标注的字段换成自己的 站点密钥 和 密钥
完成!打开网站后台,Enjoy!

5
这里的颜色是根据设备主题的,如果你需要固定颜色,请参考 Turnstile 文档 来自行添加 theme 标签
后事
打开后台,外观设置 → 开发者设置 → 自定义输出 body 尾部的 HTML 代码 中输入以下内容
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
然后在 /usr/themes/handsome/component/headnav.php 中大约 369 行下面另起一行添加以下内容(Handsome 9.0.2)
<div class="cf-turnstile" style="transform: scale(0.827); -webkit-transform: scale(0.827); transform-origin: 0 0; -webkit-transform-origin: 0 0;" data-sitekey="你的站点密钥"></div>
将上面标注的字段换成自己的 站点密钥 和 密钥
如果开启了用户注册,则需要在相同文件的大约 390 行下面另起一行同样添加以下内容(Handsome 9.0.2)
将上面标注的字段换成自己的 站点密钥 和 密钥
如果有其他版本行数对不上的并且自己不会修改的小伙伴还请麻烦将 php 文件通过邮箱私发给站长让站长来帮你
大功告成!退出网站登录,刷新首页,Enjoy!

6
展望未来
已知问题:Handsome 前台登录的 Turnstile 在深色模式下保持白色,暂时没有解决方案,欢迎各位大佬在评论区提出建议
咕咕咕:Cf 的这个验证是支持 IP 鉴权的,理论上写上更安全,但是文档里面示例不够全面,如果有大神欢迎在评论区适配这个特性