1,官方文档

  https://docs.geetest.com/install/deploy/server/python

2,使用方法(基于flask)

  1,从Github: gt3-python-sdk下载.zip文件,这个官方的压缩文件里面有三个demo,分别是基于django、flask、tornado实现的,可以作为参考。

    我们需要这里面的 geetest.py 文件、gt.js文件。

  2,在极验官网注册一个账号,获取公钥(id)、私钥(key),在后台代码中会用到。

  3,后台代码

from flask import Blueprint,render_template,session,request
import randomfrom bul.u.geetest import GeetestLibcaptach_id = "7982db09811fc65bb0172e65feda8181"
private_key = "e9d4fc300d39c013e85c631ed791af3b"jc=Blueprint('jc',__name__)@jc.route('/index')
def index():return render_template('y.html')@jc.route('/getcaptcha', methods=["GET"])
def get_captcha():user_id = 'test'gt =  GeetestLib(captach_id, private_key)status = gt.pre_process(user_id)session[gt.GT_STATUS_SESSION_KEY] = statussession["user_id"] = user_idresponse_str = gt.get_response_str()return response_str@jc.route('/validate', methods=["POST"])
def validate_capthca():gt = GeetestLib(captach_id, private_key)status = session[gt.GT_STATUS_SESSION_KEY]challenge = request.form[gt.FN_CHALLENGE]validate = request.form[gt.FN_VALIDATE]seccode = request.form[gt.FN_SECCODE]user_id = session["user_id"]if status:result = gt.success_validate(challenge, validate, seccode, user_id)else:result = gt.failback_validate(challenge, validate, seccode)result = "success" if result else "fail"return result

View Code

  4,前端配置

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Sliding mode</title><style>body {margin: 50px 0;text-align: center;font-family: "PingFangSC-Regular", "Open Sans", Arial, "Hiragino Sans GB", "Microsoft YaHei", "STHeiti", "WenQuanYi Micro Hei", SimSun, sans-serif;}.inp {border: 1px solid #cccccc;border-radius: 2px;padding: 0 10px;width: 278px;height: 40px;font-size: 18px;}.btn {display: inline-block;box-sizing: border-box;border: 1px solid #cccccc;border-radius: 2px;width: 100px;height: 40px;line-height: 40px;font-size: 16px;color: #666;
            cursor: pointer;background: white linear-gradient(180deg, #ffffff 0%, #f3f3f3 100%);
        }.btn:hover {background: white linear-gradient(0deg, #ffffff 0%, #f3f3f3 100%)
        }#captcha {            width: 300px;display: inline-block;}label {vertical-align: top;display: inline-block;width: 180px;text-align: right;}#text {            height: 42px;width: 298px;text-align: center;border-radius: 2px;background-color: #F3F3F3;color: #BBBBBB;font-size: 14px;letter-spacing: 0.1px;line-height: 42px;}#wait {            display: none;height: 42px;width: 298px;text-align: center;border-radius: 2px;background-color: #F3F3F3;
        }.loading {margin: auto;width: 70px;height: 20px;}.loading-dot {float: left;width: 8px;height: 8px;margin: 18px 4px;background: #ccc;-webkit-border-radius: 50%;-moz-border-radius: 50%;border-radius: 50%;opacity: 0;-webkit-box-shadow: 0 0 2px black;-moz-box-shadow: 0 0 2px black;-ms-box-shadow: 0 0 2px black;-o-box-shadow: 0 0 2px black;box-shadow: 0 0 2px black;-webkit-animation: loadingFade 1s infinite;-moz-animation: loadingFade 1s infinite;animation: loadingFade 1s infinite;}.loading-dot:nth-child(1) {-webkit-animation-delay: 0s;-moz-animation-delay: 0s;animation-delay: 0s;}.loading-dot:nth-child(2) {-webkit-animation-delay: 0.1s;-moz-animation-delay: 0.1s;animation-delay: 0.1s;}.loading-dot:nth-child(3) {-webkit-animation-delay: 0.2s;-moz-animation-delay: 0.2s;animation-delay: 0.2s;}.loading-dot:nth-child(4) {-webkit-animation-delay: 0.3s;-moz-animation-delay: 0.3s;animation-delay: 0.3s;}@-webkit-keyframes loadingFade {0% { opacity: 0; }50% { opacity: 0.8; }100% { opacity: 0; }}@-moz-keyframes loadingFade {0% { opacity: 0; }50% { opacity: 0.8; }100% { opacity: 0; }}@keyframes loadingFade {0% { opacity: 0; }50% { opacity: 0.8; }100% { opacity: 0; }}</style>
</head>
<body>
<h1>Sliding mode</h1>
<form id="form"><div><label for="username">username:</label><input class="inp" id="username" type="text" value="username"></div><br><div><label for="password">password:</label><input class="inp" id="password" type="password" value="123456"></div><br><div><label>Complete verification:</label><div id="captcha"><div id="text">行为验证™ 安全组件加载中</div><div id="wait" class="show"><div class="loading"><div class="loading-dot"></div><div class="loading-dot"></div><div class="loading-dot"></div><div class="loading-dot"></div></div></div></div></div><br><div id="btn" class="btn">Submit</div>
</form><!-- 注意,验证码本身是不需要 jquery 库,此处使用 jquery 仅为了在 demo 中使用,减少代码量 -->
<script src="http://static.geetest.com/static/tools/gt.js"></script>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><script>var handler = function (captchaObj) {captchaObj.appendTo('#captcha');captchaObj.onReady(function () {$("#wait").hide();});$('#btn').click(function () {var result = captchaObj.getValidate();if (!result) {return alert('Please complete verification');}$.ajax({url: '/validate',type: 'POST',dataType: 'json',data: {username: $('#username2').val(),password: $('#password2').val(),geetest_challenge: result.geetest_challenge,geetest_validate: result.geetest_validate,geetest_seccode: result.geetest_seccode},success: function (data) {if (data.status === 'success') {alert('success');} else if (data.status === 'fail') {alert('fail, Please complete verification');captchaObj.reset();}}});})// 更多接口说明请参见:http://docs.geetest.com/install/client/web-front/};$.ajax({url: "/getcaptcha?t=" + (new Date()).getTime(), // 加随机数防止缓存type: "get",dataType: "json",success: function (data) {$('#text').hide();$('#wait').show();// 调用 initGeetest 进行初始化// 参数1:配置参数// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它调用相应的接口initGeetest({// 以下 4 个配置参数为必须,不能缺少gt: data.gt,challenge: data.challenge,offline: !data.success, // 表示用户后台检测极验服务器是否宕机new_captcha: data.new_captcha, // 用于宕机时表示是新验证码的宕机product: "popup", // 产品形式,包括:float,popuplang: 'zh-cn',width: "300px",https: true// 更多配置参数说明请参见:http://docs.geetest.com/install/client/web-front/}, handler);}});
</script>
</body>
</html>

View Code

    

    

转载于:https://www.cnblogs.com/glf1160/p/10114330.html

极验行为验证的使用方法相关推荐

  1. 【原创】Python 极验滑块验证

    本文仅供学习交流使用,如侵立删! 记一次 极验滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.seleniumwire 分析 最近在做的一个项目登录时会触发 ...

  2. 【原创】极验滑块验证:AST还原混淆JS

    本文仅供学习交流使用,如侵立删! 极验滑块验证:AST还原混淆JS 操作环境 win10 . mac node14.17 v_jstools reres 分析 极验验证测试:aHR0cHM6Ly93d ...

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

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

  4. 极验滑动验证流程及思路

    目录 一.分析流程 1.抓包 2.点击验证 3.滑动验证 二.底图还原 三.W参数生成 四.python实现 前言 注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟 网址:aHR ...

  5. 拖动图形验证码(极验验证)

    1.地址 http://www.geetest.com/   申请账号 2.样式 3. 前端 <div id="captcha"><div id="lo ...

  6. 极验接入教程纯html,在AspNetCore中使用极验做行为认证的验证流程

    极验验证 极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全.便捷的云端验证服务. 与以往传统验证码不同的是,极验通过分析用户完成拼图过程中的行为特征,通过数据分 ...

  7. 使用极验【行为验证】实现人机交互验证

    官网:https://docs.geetest.com/sensebot/apirefer/api/web 流程与原理 待补充-- 方法 1.引入极验js,调用初始化方法 require(" ...

  8. 极验验证简介(待续)

    百度百科介绍: 极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全.便捷的云端验证服务. 与以往传统验证码不同的是,极验通过分析用户完成拼图过程中的行为特征,通过 ...

  9. geetest极验验证-java使用笔记

    业务场景 在系统业务中,需要想客户发送手机验证码,进行验证后,才能提交.但为了防止不正当的短信发送(攻击,恶意操作等),需要在发送短信前添加一个行为验证(这里使用的是 极验): 参考文档: 极验行为验 ...

最新文章

  1. POJO、JavaBean、DAO
  2. 时间复杂度,O(1), O(n), O(logn), O(nlogn) 的区别+样例分析
  3. 创建oracle发邮件job导致的故障
  4. 透过源码看Session
  5. 【AutoML】强化学习如何用于自动模型设计(NAS)与优化?
  6. 细胞培养中出现黑胶虫污染处理方法
  7. java 单例方法_Java-单例模式 - 惊觉
  8. Docker教程(一) Docker入门教程
  9. Coursera机器学习编程作业Python实现(Andrew Ng)—— 2.1 Logistic Regression
  10. 庆祝我的第一本书出版
  11. 【正则】正则表达式基础知识大全
  12. wifi6无线网卡驱动linux,ROG R6E Omega换wifi 6无线网卡教程
  13. 数据库表锁死的解决方法
  14. ios 出现log不打印 was compiled with optimization - stepping may behave oddly; variables may not be availa
  15. Allegro Design Entry CIS 和 Orcad Capture CIS 区别
  16. 手把手教你搭建LAMP环境,运行第一个属于你的个人网站
  17. 西电计算机学院崔江涛,“师德标兵”崔江涛:人才培养的研究者与实践者
  18. 完全用Python工作
  19. 基于Springboot+支付宝小程序会员开卡功能的服务端实现总结
  20. word文档docx解密助手,word文档docx权限密码如何解开?

热门文章

  1. python第三方包安装方法(两种方法)
  2. FastJson 原理
  3. jQuery图片播放插件prettyPhoto使用介绍
  4. 学习资料:网络回溯分析技术八大应用之安全取证
  5. Extjs 格式化---Ext.util.Format类
  6. Ext.data-Store
  7. 一篇文章带你搞懂JS对象的自我销毁
  8. 024:模版查找路径配置
  9. 《Ceph源码分析》——第1章,第5节RADOS
  10. 采用Filter的方法解决Servlet的编码问题