GEETEST(极验验证码) 3.0 for Typecho 登录验证插件

warning: 这篇文章距离上次修改已过1646天,其中的内容可能已经有所变动。

  这是一款GEETEST在Typecho上登录验证的插件,主要是提升后台登录的安全性,在折腾插件前,我也已经百度过,在Typecho上已经有很多人实现过了,但是要么是2.0版本的现在已经无法申请到key,要么是在评论上的实现,无法满足自己的要求,所以主要是为了满足自己的要求了~

GEETESTV3Explain.pngGEETESTV3Explain.png

安装后会增加验证功能,如上图所示。

目前尚无法一键实现,配置略麻烦,请斟酌安装。

配置方法:
1、去GEETEST申请key、id开启插件后进行设置
2、需要修改文件\admin\login.php

在代码这些中

<script
$(document).ready(function () {
    $('#name').focus();
});
</script>

增加

<?php Typecho_Plugin::factory('gt')->render(); ?>

在这些代码中

<script> 
//添加到这
 <?php Typecho_Plugin::factory('gt')->render(); ?>
$(document).ready(function () {
    $('#name').focus();
});
</script>

3、需要修改文件\var\Widget\Login.php

$this->security->protect();

1)修改为

    if (!$this->request->__isset('rand')) {
        // protect
        $this->security->protect();
    }

    /** 如果已经登录 */
    if ($this->user->hasLogin()) {
        /** 直接返回 */
        $this->response->redirect($this->options->index);
    }

下面添加

    $response = Typecho_Plugin::factory('gt')->verify($this);
    if ("data" == $response) {
        return;
    }
    //判断极验证码是否开启 且 有没有通过验证
    if (!empty(Helper::options()->plugins['activated']['Geetest']) && $response['statusMsg'] != 'success') {
        //$error = !empty($status[$response]) ? $status[$response] : $status['error'];
        $this->widget('Widget_Notice')->set($response[$response['statusMsg']]);
        $this->response->goBack();
    }

演示:
摸鱼V后台登录界面

下载(下载后修改文件夹名为Geetest)

GitHub

Changlog
1.0.0 从没那么简单改进而来,实现GEETEST3.0版本,进行发布。

已有 19 条评论

  1. 为什么我配置了,一直显示“验证系统初始化中……”

    1. 我在本地虚拟机环境(centos)、虚拟主机、和这个博客进行了测试,由于测试样本不多,所以可能有许多未知问题,我想在你的博客后台登录地址查看调试,但是你的后台地址隐藏了,所有没办办法给出办法了,抱歉。
      这个插件是来自别人的插件改进而来,因为没办法支持极验证3.0版本,所以进行了修改,在你的博客看到了插件配置的文章,后面的结果配图是2.0的版本,如果你使用的是2.0版本,可以直接使用原作者的插件,如果是3.0版本显示的是2.0版本的直接滑动解锁,那样配置是有问题的,极验证会调用离线的解锁方法,这个是没有什么安全性的,这里给出提醒。

  2. 已经成功启用,感谢作者

    1. 有问题欢迎反馈~

      1. 请问怎么给评论框添加Geetest验证?

        1. 不好意思,最近很忙,无暇研究了。。

  3. 下载试试。

  4. 嗯,好像你文中说,可以实现了3.0版极验的评论验证,可以提供一下是怎么实现的吗?
    #(手动微笑)

    1. 这个东西好久前写的,都忘了,但是你看得懂php语言的话应该可以理解如何实现的。

  5. lll lll

    请问注册界面和评论框怎么添加geetest验证码,

    1. 不好意思,最近很忙,无暇研究了。。

  6. 已成功,前来谢谢博主
    之前用没这么简单博主的一直刷新不出来

  7. 和楼上有位问题一样,也是配置了之后,一直显示“验证系统初始化中……” 请问是什么原因呢

    1. jquery在后台有正常加载吗?

  8. 加上代码之后,一启动插件就500报错。。。。

    1. 原来插件名称是Geetest,改好了就能启动了。
      不过我也遇到了验证码一直在初始化中。。。

      1. 可以开启插件后,我去登录页面看看吗?

        1. 可以的。
          刚刚因为没用,所以把插件删了

          1. 是不是不支持emoji。。。。表情和后面的内容不见了 (笑哭)

            现在我重新把插件加回去了,你试试吧

评论已关闭