一、说明
1.geetest网站:https://docs.geetest.com/install/deploy/server/python
2.安装geetest : pip install geetest
3.使用过程中可能出现模块不存在的问题:请查看requirements.txt安装相应模块
4.下载demo:https://github.com/GeeTeam/gt3-python-sdk/archive/master.zip
5.实例演示 如上图
6.ID和KEY要在它们的官网申请.demo里面的只供参考。

二、在Django中使用
1.模板文件中定义一个放置滑动块的部分popup-captcha和一个按钮login-button

2.模板文件中引入该公司的js文件
<script src="http://static.geetest.com/static/tools/gt.js"></script>
3.模板文件中使用js添加两个功能
(1) 点击按钮开始验证时候,向后台请求滑块内容 (为了方便请引入jquery)

 $.ajax({url: "/pc-geetest/register?t=" + (new Date()).getTime(), // 加随机数防止缓存type: "get",dataType: "json",success: function (data) {// 使用initGeetest接口// 参数1:配置参数// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件initGeetest({gt: data.gt,challenge: data.challenge,product: "popup", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config}, handlerPopup);}});

(2)滑块验证成功后,发送用户数据到后台进行校验,并返回数据

var handlerPopup = function (captchaObj) {// 成功的回调captchaObj.onSuccess(function () {var username = $("#username").val();var password = $("#password").val();var validate = captchaObj.getValidate();$.ajax({url: "{% url 'blog:login' %}", // 进行二次验证type: "post",dataType: "json",data: {username: username,password: password,csrfmiddlewaretoken: $("[name = 'csrfmiddlewaretoken']").val(),geetest_challenge: validate.geetest_challenge,geetest_validate: validate.geetest_validate,geetest_seccode: validate.geetest_seccode},success: function (data) {console.log(data)if (data.status) { //验证错误$(".login-error").text(data.msg);} else { //验证成功location.href=data.msg;}}});});$("#login-button").click(function () { //点击按钮,显示滑块captchaObj.show();});// 将验证码加到id为captcha的元素里captchaObj.appendTo("#popup-captcha");// 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html};

4 后端处理两个url请求
a.配置路由

b. 在views.py中定义各自的视图函数
第一个url对应的视图

# 第三方滑动校验
from geetest import GeetestLib
# 请在官网申请ID使用,示例ID不可使用
pc_geetest_id = "b46d1900d0a894591916ea94ea91bd2c"
pc_geetest_key = "36fc3fe98530eea08dfc6ce76e3d24c4"def pcgetcaptcha(request): #生成滑动校验内容print('hhhhh')user_id = 'test'gt = GeetestLib(pc_geetest_id, pc_geetest_key)status = gt.pre_process(user_id)request.session[gt.GT_STATUS_SESSION_KEY] = statusrequest.session["user_id"] = user_idresponse_str = gt.get_response_str()return HttpResponse(response_str)

第二个url对应的视图


def login(request):"""滑动拖块校验+用户数据校验:param request::return:"""if request.method == "POST":# 初始化一个给ajax的返回数据:ret = {"status":0,"msg":""}# 滑动块部分gt = GeetestLib(pc_geetest_id, pc_geetest_key)challenge = request.POST.get(gt.FN_CHALLENGE, '')validate = request.POST.get(gt.FN_VALIDATE, '')seccode = request.POST.get(gt.FN_SECCODE, '')status = request.session[gt.GT_STATUS_SESSION_KEY]user_id = request.session["user_id"]if status:result = gt.success_validate(challenge, validate, seccode, user_id)else:result = gt.failback_validate(challenge, validate, seccode)if result:# 自己填充自己的逻辑部分 begin# 自己填充自己的逻辑部分 endelse:ret['status'] = 1ret['msg'] = "验证码错误"return JsonResponse(ret)return render(request,"模板文件.html")

三、扩展
1.不仅支持pc端,也支持移动端
2.demo实例请自己下载研究,比较简单上手
3.更多geetest插件问题请访问 https://www.geetest.com/

插件3-滑动验证(geetest)相关推荐

  1. selenium模拟geetest极验滑动验证

    前言 前一阵子打球认识了一个小学生,为了骗他钱,吹了好半天,什么盗取心上人的QQ密码,吃鸡外挂,学校饭卡无限充值,最终达成交易10块钱帮他刷QQ赞. 回家赶快百度研究了一下,原来刷赞很简单:很多网站都 ...

  2. spring boot+ geetest滑动验证

    geetest滑动验证 最近公司为了安全,在登录注册,发送短信等需要验证的地方改为用滑动验证,再此记录一下 一.注册账号极验官网 进去以后找到 ID和key值需要记住,代码中需要配置 二.下载demo ...

  3. 【原创】基于vue。简单、优雅的评论插件(包含颜文字表情、滑动验证)。

    主要功能 支持颜文字emoji表情(╮( ̄▽ ̄)╭) 支持滑动验证. 评论为空不允许提交. 封装了几个常用的方法. 在线浏览 1.用户已登录 2.用户未登录 使用方法 <template> ...

  4. vue 插件 滑块验证_Vue插件之滑动验证码

    本文实例为大家分享了Vue插件之滑动验证码的具体代码,供大家参考,具体内容如下 预览 目前仅前端实现,支持移动端滑动事件.版本V1.0.5 github文档地址 安装 npm install --sa ...

  5. 【移动端】滑动验证致使整个屏幕都在动

    最近发现一款JQ图片滑动验证的代码.当手机端拖动按钮元素时,会触发手机浏览器自带事件,导致滑动失效或切屏,并且浏览器报错. [Intervention] Unable to preventDefaul ...

  6. vue实现图片滑动验证功能——功能实现

    图片滑动验证,是目前比较常见的验证方式,主要目的是防止用户利用机器人自动注册.登录.灌水. 目前vue技术日趋成熟,已经有专门针对图片滑动验证功能的插件了.具体使用方式如下: 1.安装插件--npm ...

  7. ThinkPHP5实现极验滑动验证码geetest功能

    现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能.现在很多极验都是第三方的,也很多都是收费的.这里主 ...

  8. wordpress滑动验证_WordPress图像滑块:滑动还是不滑动?

    wordpress滑动验证 Image sliders (also known as image carousels or slideshows) can be a convenient way to ...

  9. 爬虫中滑动验证的绕过

    验证是常见的反爬虫策略之一,在现在的很多站点中我们会引入滑动验证的方式,来校验访问者的真实性.譬如下面著名的 jQuery 滑动插件: 在模拟登陆时,我们往往需要绕过这样的滑动验证,而基于 Puppe ...

最新文章

  1. 大佬教你修改pycharm编辑器 简单的四步教你搞定界面风格修改
  2. Data Set 投票
  3. Sharding-JDBC(三)3.1.0版本实践
  4. SpringBoot中使用 Druid 数据库连接池, 后台SQL监控无效
  5. WebRTC拥塞控制算法——GCC介绍
  6. POJ - 2226 Muddy Fields(最小点覆盖-二分图最大匹配)
  7. c#+handle.exe实现升级程序在运行时自动解除文件被占用的问题
  8. sqlmap的二次开发
  9. Java中使用有返回值的线程
  10. 一個便宜的高负载网站架构
  11. 小小智慧树机器人_中国工厂番外篇丨AGV机器人演绎智能“搬运工”
  12. EMQ MQTT云服务器搭建 - 阿里云轻量应用服务器
  13. 【收集资料】OpenGL学习
  14. 创建虚拟机与安装系统
  15. vue组件库,插件大全
  16. 【转载】Excel中批量填充公式有5个方法
  17. Python超市进销存管理系统!老妈开超市有系统了!
  18. 乌云章华鹏:如何构建高效的安全运维服务平台
  19. 十一月组队学习报名啦!
  20. Plus版SBOM:流水线物料清单PBOM

热门文章

  1. 关系型数据库管理系统跟Hadoop比较
  2. 线性代数——理解向(3)
  3. golang---并发Goroutine
  4. Go GPM 调度器介绍
  5. 硬盘坏了影响计算机启动吗,电脑硬盘坏了就换?不花一分钱就能成功修复!
  6. mac 天文软件安装配置【python/ds9/iraf】
  7. 如何使用老毛桃重装系统和镜像系统
  8. 奈奎斯特-香农定理(1):了解采样系统
  9. 雨林木风(YLMF)经典操作系统大全
  10. CISCO 3750交换机堆叠