Détail du package

geetest

GeeTeam2.4kISC4.1.2

Node SDK for Geetest captcha

Geetest, Captcha

readme

注意:3.x.x之后修改了所传入的字段名称,将 publicKeyprivateKey 修改为 geetest_idgeetest_key ,升级会造成不兼容问题,请各位注意在升级前修改相应的字段名称,新用户无须关注此修改

我们现在将 https://static.geetest.com/static/tools/gt.js 文件放在了本地,目的在于利用多CDN,尽可能保证静态文件的加载。

Install 安装

npm install geetest --save

运行DEMO

cd Project
git clone https://github.com/GeeTeam/gt-node-sdk.git
cd gt-node-sdk
npm install
npm start
// 最后请打开浏览器访问localhost:8080
// 了解sdk的使用方式请查阅demo目录下的app.js文件

使用说明

sdk 提供 Geetest 构造函数,实例化时需要传入一个配置对象。

配置对象的字段如下:

  • geetest_id:验证公钥,必须
  • geetest_key:验证私钥,必须
  • protocol:与极验服务器交互时使用的协议,默认为 http://可选
  • api_server:针对私有化用户提供对默认的 api.geetest.com 进行修改,普通用户无需关注此选项,可选

geetest_idgeetest_key 申请地址:account.geetest.com

申请后,初始化 Geetest

var Geetest = require('geetest');

var captcha = new Geetest({
    geetest_id: 'xxx', // 将xxx替换为您申请的id
    geetest_key: 'xxx', // 将xxx替换为您申请的key
});

上述 Geetest 的实例 captcha 提供两个方法:

register(callback)

// 回调形式
captcha.register(function (err, data) {

    // err 表示发生错误
    if (err) {
        console.error(err);
        return;
    }

    // data 为一个对象,包含 gt, challenge, success, new_captcha 字段
    // success 为 1 表示正常模式,为 0 表示宕机模式(failback, fallback)
    var body = {
        gt: data.geetest_id,
        challenge: data.challenge,
        success: data.success
    };

    // 将 body 发送给前端...
});

// Promise 形式
captcha.register().then(function (data) {

    // data 为一个对象,包含 gt, challenge, success, new_captcha 字段
    // success 为 1 表示正常模式,为 0 表示宕机模式(failback, fallback)
    var body = {
        gt: data.geetest_id,
        challenge: data.challenge,
        success: data.success
    };

    // 将 body 发送给前端...

}, function (err) {
    console.error(err);
});

validate(result, callback)

// 回调形式
captcha.validate({
    challenge: 'xxx',
    validate: 'xxx',
    seccode: 'xxx'
}, function (err, success) {

    if (err) {
        console.error(err);
        return;
    }

    if (success) {

            // 二次验证成功,运行用户的操作

        } else {

            // 二次验证失败,不允许用户的操作

        }

});

// Promise 形式
captcha.validate({
    challenge: 'xxx',
    validate: 'xxx',
    seccode: 'xxx'
}).then(function (success) {

    if (success) {

        // 二次验证成功,运行用户的操作

    } else {

        // 二次验证失败,不允许用户的操作

    }
}, function (err) {
    console.error(err);
})

使用前,强烈建议您阅读我们的入门文档

更新历史:CHANGELOG

changelog

4.1.2

  1. 将gt.js转为本地存储,利用多CDN,增加静态文件加载的可靠性。

4.1.0

  1. 重命名配置参数 apiServerapi_server
  2. 完善 README

4.0.0

  1. 完善 registervalidate 接口提供的 Promise 风格的异步处理形式
  2. 对于使用回调(handler)形式,符合了 NodeJS 中对错误的通知(即回调的第一个参数为err)
  3. 修改demo,使用了 Promise 风格和回调风格,同时强调了 failback 流程

3.0.0

  1. 鉴于遇到很多用户对 publicKeyprivateKey 容易搞混淆,先将其改名为 geetest_idgeetest_key 。因此,和以前的版本无法兼容,所以修改主版本号。

2.2.1

  1. 优化移动端自实现弹出式验证demo

2.2.0

  1. 新增移动端自实现弹出式验证demo

2.1.1

  1. 修复register协议名称未添加bug

2.1.0

  1. 添加promise形式回调

2.0.0

  1. 增加failback模式
  2. 修改了接口register的回调参数
  3. 实例化传参改为传入一个配置对象

具体请参照用法说明:README

Update in 1.0.0 更新内容

1.添加多实例验证码创建方法 2.更新demo

Update in 0.5.4 更新内容

对challenge进行md5操作,增加安全性。

Update in 0.5.1 更新内容

将sdk里面的bodyParser函数去掉,简化了各接口的内部实现,接口使用不变。 添加了示例,并将带有failback功能的脚本统一放到了gt.js文件中,提供一个initGeetest的接口,用法参考示例

Update in 0.4.0 更新内容

Use recommended error handler method: callback(err, result). 规范了错误处理,所有的回调函数现在均遵循node规范,以callback(err, result)的形式,因此您需要按照新的方法修改您的代码以正常运行。

Update in 0.3.3 更新内容

You can modify the api server address

你现在可以修改APIServer的地址了

Update in 0.3.1 更新内容

Use register api to check the server status, if it return false, switch to local captcha manually

现在可以用register接口作为检查服务器是否正常的方法,如果register返回false则切换为本地验证码

What's New in 0.2.0 更新内容

Pass public key to use register API, optional right now, if you don't use it now, the captcha might broke some time in the future

将你的Public Key作为第二个参数传入,此参数现在为可选参数,只有传入才能够使用register接口。Register接口可能在将来成为必须的接口