前端:

$("#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的编码格式,不需要再画蛇添足了。

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)

geetest文件夹什么意思_极验geetest的使用相关推荐

  1. geetest文件夹什么意思_手机文件夹是英文不敢删?只要找出这5个文件夹,能腾出大量内存...

    很多朋友都知道,删除手机文件夹是有效清理内存的方法,但是大部分手机里的文件夹都是英文名字,大家都不知道是什么意思,所以也不敢"轻举妄动".没关系,今天小科就带你了解了解,哪些文件夹 ...

  2. python爬虫-国家企业_自动查企业工商登记信息(企业信用信息公示系统、极验Geetest与Python爬虫)...

    一.引言: 信贷作业的过程就是信息搜集和验证的过程.对于企业客户,最权威的信息渠道莫过于工商登记信息,各种第三方查询工具(天眼查.启信宝.各种各样的API等等)也来源于此. 常见的问题在于,我们不仅要 ...

  3. 对极验geetest滑块验证码图片还原算法的研究

    免责声明 本文章所提到的技术仅用于学习用途,禁止使用本文章的任何技术进行发起网络攻击.非法利用等网络犯罪行为,一切信息禁止用于任何非法用途.若读者利用文章所提到的技术实施违法犯罪行为,其责任一概由读者 ...

  4. 爬虫进阶教程:极验(GEETEST)验证码破解教程

    原文链接及原作者:爬虫进阶教程:极验(GEETEST)验证码破解教程 | Jack Cui 一.前言 爬虫最大的敌人之一是什么?没错,验证码![Geetest]作为提供验证码服务的行家,市场占有率还是 ...

  5. Django中使用极验Geetest滑动验证码

    一,环境部署 1.创建一个django测试项目 此处省略... 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github ...

  6. 极验geetest的使用

    项目中会遇到 滑块验证的需求: 前端vue里 1.新建/utils/gt3.js "v0.4.8 Geetest Inc.";(function (window) {"u ...

  7. Django中使用极验Geetest滑动验证码过程解析

    **一,环境部署 ** 1.创建一个django测试项目 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github.co ...

  8. 给html5添加极验,Django中使用极验Geetest滑动验证码过程解析

    一,环境部署 1.创建一个django测试项目 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github.com/Gee ...

  9. Python爬虫解决极验(geetest)滑动验证码

    csdn_okcheng 滑动验证码的识别介绍 实现步骤: ① 初始化 ② 模拟登录填写,点开滑块验证 ③ 获取并储存有无缺口的两张图片 ④ 获取缺口位置 ⑤ 获取移动轨迹 ⑥ 按照轨迹拖动,完全验证 ...

最新文章

  1. 记录一次提交开源JAR包到中央仓库的过程
  2. html表单下拉美化教程,用javascript实现select的美化的方法
  3. 一些微服务拆分的浅见
  4. 解决安装SQL Server 2005开发版时,出现“SQL Server 服务无法启动 ”点击重试或取消的解决方法
  5. 模块概念与使用及注意事项
  6. 工作流实战_27_flowable 自定义sql查询
  7. Hibernate VS Mybatis 的SQL不灵活通病如何解决?
  8. html 设置打印区域,excel打印区域怎么设置
  9. Spring项目使用Junit4测试配置
  10. 温度补偿计算公式_管道布置设计原则、基本要求与补偿器的选择
  11. dhcp协议_记录一次DHCP协议的学习过程
  12. windows安装node.js和cnpm
  13. c++_cin.getline()与getline() _getline(cin,str,20)
  14. UI设计师的日常工作流程是怎样的?|优漫教育
  15. 链游的趋势和前景:团队开始专注于建设 进入 6-12 个月重新整合期
  16. 快手与内涵段子最本质的区别
  17. 字节数据要与0xFF相与
  18. WPF如何用TreeView制作好友列表、播放列表
  19. Hyper-v虚拟机上鼠标或键盘不能用以及没网络解决方法
  20. CodeForces - 437B The Child and Set 题解

热门文章

  1. GAT和GCN的局限性
  2. 【深度学习 tensorflow】Mac OS安装TensorFlow
  3. [C语言]给出一个大于或等于3的正整数,判断他是不是一个素数。
  4. 用EasySysprep封装Win7系统,做自己的操作系统,适用win8,win10-一键安装win7
  5. C# textbox 根据文字/字符 换行并自适应高度
  6. cvs update 用法_CVS客户端使用指南
  7. java把图片存入文件夹_将图片保存在指定文件夹中
  8. 鲁迅的《白光》表达了什么
  9. Python每日练习 04 你有一个目录,装有很多图片,现在你要把它们的尺寸变成不都大于Iphone5分辨率的大小
  10. MUD游戏编程 接收数据