geetest文件夹什么意思_极验geetest的使用

前端:

$("#show-mobile-captcha").click(function () {

//alert('ok');

$("#popup-captcha-mobile").removeClass('hide');

});

var handlerPopupMobile = function (captchaObj) {

// 将验证码加到id为captcha的元素里

captchaObj.appendTo("#popup-captcha-mobile");

//拖动验证成功后两秒(可自行设置时间)自动发生跳转等行为

captchaObj.onSuccess(function () {

var validate = captchaObj.getValidate();

//alert(validate.geetest_challenge);

$.ajax({

url: "mobile-geetest/ajax_validate", // 进行二次验证

type: "post",

dataType: "json",

data: {

// 二次验证所需的三个值

geetest_challenge: validate.geetest_challenge,

geetest_validate: validate.geetest_validate,

geetest_seccode: validate.geetest_seccode

},

success: function (data) {

if (data && (data.status === "success")) {

$(document.body).html('

登录成功

');

} else {

$(document.body).html('

登录失败

');

}

}

});

});

// 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html

};

$.ajax({

// 获取id,challenge,success(是否启用failback)

url: "mobile-geetest/register?t=" + (new Date()).getTime(), // 加随机数防止缓存

type: "get",

dataType: "json",

success: function (data) {

// 使用initGeetest接口

// 参数1:配置参数

// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件

initGeetest({

gt: data.gt,

challenge: data.challenge,

offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注

// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config

}, handlerPopupMobile);

}

});

后端:

首先从https://github.com/GeeTeam/gt-python-sdk/

下载geetest文件夹的geetest.py和init.py这2个文件放入自己的项目,

我使用的是极验3.2版本,python是3.4版本

从极验geetest下载的3.2版本的包,加入项目后,居然导致session出现各种莫名错误,明明在session设置了某个key的值,读取这个key的值就说不存在。莫名其妙,搞了一下午,最后尝试把开头的#!coding:utf8去掉,一下全部正常了,因为python默认就是utf-8的编码格式,不需要再画蛇添足了。

e1358e51c688

Paste_Image.png

然后是后端调用代码

from ..common.geetest import GeetestLib

import json

#生成图片验证码

@auth.route('/mobile-geetest/register', methods=["GET"])

def get_mobile_captcha():

mobile_geetest_id = "7c25da6fe21944cfe507d2f9876775a9"

mobile_geetest_key = "f5883f4ee3bd4fa8caec67941de1b903"

gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)

status = gt.pre_process()

session[gt.GT_STATUS_SESSION_KEY] = status

response_str = gt.get_response_str()

return response_str

#验证用户拖动结果

@auth.route('/mobile-geetest/ajax_validate', methods=["GET","POST"])

def mobile_ajax_validate():

mobile_geetest_id = "7c25da6fe21944cfe507d2f9876775a9"

mobile_geetest_key = "f5883f4ee3bd4fa8caec67941de1b903"

gt = GeetestLib(mobile_geetest_id,mobile_geetest_key)

challenge = request.form[gt.FN_CHALLENGE]

validate = request.form[gt.FN_VALIDATE]

seccode = request.form[gt.FN_SECCODE]

status = session[gt.GT_STATUS_SESSION_KEY]

if status:

result = gt.success_validate(challenge, validate, seccode)

else:

result = gt.failback_validate(challenge, validate, seccode)

result = {"status":"success"} if result else {"status":"fail"}

return json.dumps(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值