适用于 Typecho 的 Turnstile 人机验证插件

介绍

Turnstile 是 Cloudflare 提供的人机验证解决方案。

Turnstile 是 Cloudflare 的智能 CAPTCHA 的替代功能。它可以嵌入到任何网站中,而无需通过 Cloudflare
发送流量,也无需向访问者显示 CAPTCHA。

我没有找到现成的 Turnstile 插件,于是自己写了一个出来。

特性

这个插件支持评论登录两种场景的验证。

需要启用验证在插件设置中勾选即可。

_20230222_220411.png.webp

使用方法

装过插件都知道,先上传到服务器,确保插件文件夹名称为 Turnstile。

然后再设置里启用插件,配置密钥即可。

如需使用评论验证,请做如下修改

找到你主题中评论的模板文件 (例如 comments.php),在适当位置添加以下代码

<?php Turnstile_Plugin::output(); ?>

这段代码应该位于评论表单 <form></form> 之间

项目地址

Github: nkxingxh/Typecho-Turnstile

本文链接:

https://blog.nkxingxh.top/archives/240/
1 + 5 =
9 评论
    云端筑梦室Chrome 120Windows 10
    1月15日 回复

    尝试删除"_t"后提示:

    Class "Typecho_Widget_Helper_Form_Elementext" not found
    Error: Class "Typecho_Widget_Helper_Form_Elementext" not found in /www/wwwroot/www.*.com/usr/plugins/Turnstile/Plugin.php:67
    Stack trace:
    #0 [internal function]: Turnstile_Plugin::config()
    #1 /www/wwwroot/www.*.com/var/Widget/Plugins/Config.php(98): call_user_func()
    #2 /www/wwwroot/www.*.com/admin/options-plugin.php(12): Widget\Plugins\Config->config()
    #3 {main}
    云端筑梦室Chrome 120Windows 10
    1月15日 回复

    大佬,😭我启用后进入插件设置提示:

    Typecho\I18n\GetText::translate(): Return value must be of type string, null returned
    TypeError: Typecho\I18n\GetText::translate(): Return value must be of type string, null returned in /www/wwwroot/www.ydzms.com/var/Typecho/I18n/GetText.php:120
    Stack trace:
    #0 /www/wwwroot/www.ydzms.com/var/Typecho/I18n/GetTextMulti.php(57): Typecho\I18n\GetText->translate()
    #1 /www/wwwroot/www.ydzms.com/var/Typecho/I18n.php(42): Typecho\I18n\GetTextMulti->translate()
    #2 /www/wwwroot/www.ydzms.com/var/Typecho/Common.php(43): Typecho\I18n::translate()
    #3 /www/wwwroot/www.ydzms.com/usr/plugins/Turnstile/Plugin.php(68): _t()
    #4 [internal function]: Turnstile_Plugin::config()
    #5 /www/wwwroot/www.*.com/var/Widget/Plugins/Config.php(98): call_user_func()
    #6 /www/wwwroot/www.*.com/admin/options-plugin.php(12): Widget\Plugins\Config->config()
    #7 {main}
      NKXingXhChrome 120Windows 10
      1月15日 回复

      @云端筑梦室 没遇到过这种问题,你的Typecho是什么版本的?

    XieLongChrome 119Windows 10
    2023年12月11日 回复

    PJAX支持似乎有问题,加载不出来,是不是还要写回调函数啊,不太懂

      NKXingXhChrome 120Windows 10
      2023年12月19日 回复

      @XieLong 我没怎么在Typecho研究过PJAX,你看下控制台的报错,有可能是使用了PJAX导致相关的JS没引入

        XieLongChrome 120Windows 10
        1月9日 回复

        @NKXingXh 发现问题了,你的代码提前使用了jQuery,而我的主题是在footer处才加载库,所以在$(document)处报错了

    flynnChrome 114Windows 10
    2023年07月12日 回复

    支持一下~ 但是我在你这评论 他转圈转了很久……

    小AChrome 112Windows 10
    2023年04月19日 回复

    看到需要填写Serect,这个需要去cloudflare申请吗?托管、非交互式?

      NKXingXhChrome 112Windows 10
      2023年04月27日 回复

      @小A 类型是托管