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的编码格式,不需要再画蛇添足了。
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的使用相关推荐
- geetest文件夹什么意思_手机文件夹是英文不敢删?只要找出这5个文件夹,能腾出大量内存...
很多朋友都知道,删除手机文件夹是有效清理内存的方法,但是大部分手机里的文件夹都是英文名字,大家都不知道是什么意思,所以也不敢"轻举妄动".没关系,今天小科就带你了解了解,哪些文件夹 ...
- python爬虫-国家企业_自动查企业工商登记信息(企业信用信息公示系统、极验Geetest与Python爬虫)...
一.引言: 信贷作业的过程就是信息搜集和验证的过程.对于企业客户,最权威的信息渠道莫过于工商登记信息,各种第三方查询工具(天眼查.启信宝.各种各样的API等等)也来源于此. 常见的问题在于,我们不仅要 ...
- 对极验geetest滑块验证码图片还原算法的研究
免责声明 本文章所提到的技术仅用于学习用途,禁止使用本文章的任何技术进行发起网络攻击.非法利用等网络犯罪行为,一切信息禁止用于任何非法用途.若读者利用文章所提到的技术实施违法犯罪行为,其责任一概由读者 ...
- 爬虫进阶教程:极验(GEETEST)验证码破解教程
原文链接及原作者:爬虫进阶教程:极验(GEETEST)验证码破解教程 | Jack Cui 一.前言 爬虫最大的敌人之一是什么?没错,验证码![Geetest]作为提供验证码服务的行家,市场占有率还是 ...
- Django中使用极验Geetest滑动验证码
一,环境部署 1.创建一个django测试项目 此处省略... 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github ...
- 极验geetest的使用
项目中会遇到 滑块验证的需求: 前端vue里 1.新建/utils/gt3.js "v0.4.8 Geetest Inc.";(function (window) {"u ...
- Django中使用极验Geetest滑动验证码过程解析
**一,环境部署 ** 1.创建一个django测试项目 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github.co ...
- 给html5添加极验,Django中使用极验Geetest滑动验证码过程解析
一,环境部署 1.创建一个django测试项目 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github.com/Gee ...
- Python爬虫解决极验(geetest)滑动验证码
csdn_okcheng 滑动验证码的识别介绍 实现步骤: ① 初始化 ② 模拟登录填写,点开滑块验证 ③ 获取并储存有无缺口的两张图片 ④ 获取缺口位置 ⑤ 获取移动轨迹 ⑥ 按照轨迹拖动,完全验证 ...
最新文章
- 记录一次提交开源JAR包到中央仓库的过程
- html表单下拉美化教程,用javascript实现select的美化的方法
- 一些微服务拆分的浅见
- 解决安装SQL Server 2005开发版时,出现“SQL Server 服务无法启动 ”点击重试或取消的解决方法
- 模块概念与使用及注意事项
- 工作流实战_27_flowable 自定义sql查询
- Hibernate VS Mybatis 的SQL不灵活通病如何解决?
- html 设置打印区域,excel打印区域怎么设置
- Spring项目使用Junit4测试配置
- 温度补偿计算公式_管道布置设计原则、基本要求与补偿器的选择
- dhcp协议_记录一次DHCP协议的学习过程
- windows安装node.js和cnpm
- c++_cin.getline()与getline() _getline(cin,str,20)
- UI设计师的日常工作流程是怎样的?|优漫教育
- 链游的趋势和前景:团队开始专注于建设 进入 6-12 个月重新整合期
- 快手与内涵段子最本质的区别
- 字节数据要与0xFF相与
- WPF如何用TreeView制作好友列表、播放列表
- Hyper-v虚拟机上鼠标或键盘不能用以及没网络解决方法
- CodeForces - 437B The Child and Set 题解
热门文章
- GAT和GCN的局限性
- 【深度学习 tensorflow】Mac OS安装TensorFlow
- [C语言]给出一个大于或等于3的正整数,判断他是不是一个素数。
- 用EasySysprep封装Win7系统,做自己的操作系统,适用win8,win10-一键安装win7
- C# textbox 根据文字/字符 换行并自适应高度
- cvs update 用法_CVS客户端使用指南
- java把图片存入文件夹_将图片保存在指定文件夹中
- 鲁迅的《白光》表达了什么
- Python每日练习 04 你有一个目录,装有很多图片,现在你要把它们的尺寸变成不都大于Iphone5分辨率的大小
- MUD游戏编程 接收数据