当前位置: 首页 > news >正文

Typecho登陆与评论添加Geetest极验证,支持PJAX主题(如Handsome)

Typecho登陆与评论添加Geetest极验证,支持PJAX主题(如Handsome)

起因

最近垃圾评论比较多,为了防止一些机器人,我给博客添加了一些评论过滤机制,并为评论添加了验证码。

原本使用的插件是noisky/typecho-plugin-geetest,这个插件是只有在页面刷新的时候才初始化Geetest验证码。由于我用的主题是Handsome并且开启了PJAX回调,进入页面和文章是不进行刷新的,这就导致Geetest无法加载。

因此我改进了这个插件,使其能够支持启用了PJAX的主题。

(目前我已经向noisky/typecho-plugin-geetest发起合并请求,截止到我写这篇文章的时候还没有被允许,启用了PJAX回调的小伙伴可以先使用我仓库的这个)

项目地址

Github地址:CairBin/typecho-plugin-geetest

使用说明

1 下载激活插件

下载插件后,解压,将文件夹名称改为 Geetest,上传到 /usr/plugins 目录下,在插件面板启用插件并配置即可使用;

或者直接在 Typecho 的插件目录下执行如下命令:

cd typechoPath/usr/plugins
git clone https://github.com/noisky/typecho-plugin-geetest.git Geetest

2 配置Nginx伪静态

如果使用了宝塔面板,可以在站点设置中进行配置。(Apache也是类似,但配置写法不一样)

location / {if (!-e $request_filename){rewrite ^(.*)$ /index.php;}
}

3 配置插件

极验验证码的 ID 和 KEY 需要到极验官网 https://www.geetest.com/ 获取;

注册、创建应用的时候,基础版是免费的;

如需开启评论验证码,则需要在你的主题评论模板 comments.php 中的任意一行添加如下代码(一般写在评论表单内,评论提交按钮之前):

<div id="captcha"></div><?php Geetest_Plugin::commentCaptchaRender(); ?>
<script src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script>

由于jsDelivr在中国大陆失效,若服务器部署在大陆境内,在可以使用字节跳动的CDN:

<div id="captcha"></div><?php Geetest_Plugin::commentCaptchaRender(); ?>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.2.4/jquery.min.js"></script>

对于某些主题已经加载了JQuery(如Handsome),因此无需再次引入

<div id="captcha"></div><?php Geetest_Plugin::commentCaptchaRender(); ?>

效果展示

  • 插件后台

插件后台

  • 登陆界面

登陆验证

  • 评论区

评论验证

http://www.lryc.cn/news/483227.html

相关文章:

  • 前端入门一之ES6--面向对象、够着函数和原型、继承、ES5新增方法、函数进阶、严格模式、高阶函数、闭包
  • 脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾
  • RoseTTAFold MSA_emb类解读
  • 2411C++,C++26反射示例
  • Ubuntu上搭建Flink Standalone集群
  • C语言 精选真题2
  • Netty篇(WebSocket)
  • 云原生-docker安装与基础操作
  • MySQL数据库:SQL语言入门 【上】(学习笔记)
  • 重学 Android 自定义 View 系列(六):环形进度条
  • nodejs 020: React语法规则 props和state
  • STM32问题集
  • SwiftUI(十二)- 容器组件 布局与结构的基石
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • LeetCode【0039】组合总和
  • AscendC从入门到精通系列(一)初步感知AscendC
  • PostgreSQL中的COPY命令:高效数据导入与导出
  • 【HAL库】STM32F105VCTx多通道ADC+DMA方式的【STM32CubeMX】配置及代码实现
  • [SaaS] 数禾科技 AIGC生成营销素材
  • vue3中查找字典列表中某个元素的值对应的列表索引值
  • 爱普生机器人EPSON RC
  • Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)
  • ❤React-JSX语法认识和使用
  • 51单片机应用开发(进阶)---定时器应用(电子时钟)
  • JavaScript中的对象-栈内存和堆内存以及this指向的两种情况(后续会出进阶)
  • shell脚本使用curl上传FTP
  • 【漏洞分析】Fastjson最新版本RCE漏洞
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • 杨中科 .Net Core 笔记 DI 依赖注入2
  • 微信版产品目录如何制作?