Geetest极验+VUE把验证码绑定到自己的按钮(例如获取验证码)

article/2025/9/10 15:54:09

极验流程

客户端gt.js里调用initGeetest发起初始化,会向后端获取gt等参数(后端会跟极验通信),然后前端会根据传回的数据去决定用什么做验证,然后验证通过之后会有三个参数提供给后端进行二次校验的。具体接入看极验官方文档
由于极验官方文档使用的是原生js,我这里用的vue,不能直接用vue实例,因此我微改了下极验的js

改源码

  1. 修改源码初始化函数initGeetest,传入vue实例
    1.1 修改gt.js 在initGeetest函数最后加入参数vm
    在这里插入图片描述
  2. 双击选中callback,往下翻找到调用的地方。传入vm
    在这里插入图片描述
  3. 然后使用的时候就可以用我们的vue实例对象了
    . 例如我的原本没有验证码的时候调用getSms函数获取短信验证码,使用极验后加入initGT函数用来初始化极验服务
    . initGT (是在vue的methods里,并且在mounted内调用initGT对极验验证码初始化)
    . 官方原版是let handler= function (captcha_obj){}我改成了let handler= function (captcha_obj,vm) {}
initGT:function(){let handler= function (captcha_obj,vm) {captcha_obj.appendTo("#captcha_register");captcha_obj.onReady(function () {//初始化完成代码vm.captcha_obj=captcha_obj//把这个obj放入了vue实例里管理}).onSuccess(function(){//获取验证完成的三个参数调用captcha_obj.getValidate()vm.captcha_obj=captcha_obj//完成验证再次调用发送验证码函数,即可通过检测发送请求vm.getSms()}).onError(function () {captcha_obj.reset();})}this.$axios.get('/geetest_register?t='+(new Date()).getTime()).then(res=>{let data=res.data// eslint-disable-next-line no-undefinitGeetest({gt: data.gt,challenge: data.challenge,new_captcha: data.new_captcha, // 用于宕机时表示是新验证码的宕机offline: !data.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注product: "bind", // 产品形式,包括:float,popupwidth: "100%"}, handler,this);})},

然后getSms函数是这样的

getSms:function(){//调用参数检查(手机号码),参数检查自己写if(this.chechPara()){let geetest_data=this.captcha_obj.getValidate()if(geetest_data==undefined){//没有通过验证this.captcha_obj.verify()//调起极验进行验证return}//通过验证,把验证后的三个参数放入payload post去短信验证码接口,极验验证码需要后端二次验证let payload={}payload.geetest_challenge=geetest_data.geetest_challengepayload.geetest_seccode=geetest_data.geetest_seccodepayload.geetest_validate=geetest_data.geetest_validate//手机号payload.phone=''//往验证码接口发起请求 ajax或者axios等等}
}

然后就弹出来了
在这里插入图片描述

备注

1.初始化用initGeetest
2. 获取验证结果用captcha_obj.getValidate()
3. 调起验证用captcha_obj.verify()
4. 充值用captcha_obj.reset()
5. 其他的onready onsuccess onerror自行选择使用


http://chatgpt.dhexx.cn/article/erVL8Wsk.shtml

相关文章

【日常】Geetest滑动验证码(三代canvas版)处理小结(以B站登录验证为例)

问题描述 这个问题确实让我困扰了太长时间,今天花了半天时间,并没有找到非常完满的解决方案,只是在解决问题的过程中学会了一些其他知识,我最后还是要通过人工来判断大致的移动距离,然后根据误差做微调。大致做个总结…

geetest极验空间推理验证码破解与研究

看了很多的破解滑动验证码,决定破解一下空间推理验证码。破解思路,通过分析接口请求,对图片物体进行定位分类,通过模拟请求破解验证码。 研究的网站为 https://www.geetest.com/show 一、极验请求分析 请求详细 一、register-s…

googletest简介

googletest是由谷歌的测试技术团队开发的测试框架,使用c实现,具有跨平台等特性。 好的测试框架 引用谷歌给出的文档,好的测试应当具备以下特征: 测试应该是独立的和可重复的。调试一个由于其他测试而成功或失败的测试是一件痛苦…

破解极验(geetest)验证码

最近在搞爬虫的时候在好几个网站都碰到了一种叫做geetest的滑动条验证码,一直没有太好的办法只能在触发这个验证码后发个报警去手动处理一下。http://www.geetest.com/exp_embed是他们官网的样例。 后来研究了下觉得要破解这个验证码有这么几个问题: 无法直接通过发送…

破解滑块验证码最新版(GEETEST 95%以上通过率)

一、滑块验证码简述 有爬虫,自然就有反爬虫,就像病毒和杀毒软件一样,有攻就有防,两者彼此推进发展。而目前最流行的反爬技术验证码,为了防止爬虫自动注册,批量生成垃圾账号,几乎所有网站的注册页…

极验GeeTest简单demo

概述 人机验证 3.0 解决方案(基于生物行为与人工智能) 2012 年极验将人机验证从1.0时代推动到了 2.0 时代。在 5 年时间中,超过千亿次数据学习与优化,极验利用三角防护理论和 AI 智能决策引擎,全面更新安全架构。2017 年,正式推出…

极验geetest的使用

项目中会遇到 滑块验证的需求: 前端vue里 1.新建/utils/gt3.js "v0.4.8 Geetest Inc.";(function (window) {"use strict";if (typeof window undefined) {throw new Error(Geetest requires browser environment);}var document window.do…

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

摘要: 爬虫最大的敌人之一是什么?没错,验证码!Geetest作为提供验证码服务的行家,市场占有率还是蛮高的。遇到Geetest提供的滑动验证码怎么破?授人予鱼不如授人予渔,接下来就为大家呈现本教程的精彩内容。 一…

【已解决】安卓手机的GeeTest文件夹是什么

网上关于安卓系统手机的GeeTest目录是什么的文章和帖子,绝大部分打着GeeTest的标题,内容都是牛头不对马嘴,答非所问,没一个能解释清楚。 我刚刚找到了正式的答复如下: Android 手机上的“geetest”目录与名为“极验”的…

正定二次型与半正定二次型

对于实二次型其中A是实对称的,下列条件等价: 正定的 (1)是正定的. (2)它的正惯性指数p等于n. (3)有可逆实矩阵C,使得其中 (4)实对称矩阵A是正…

怎么对document.write写出来的内容调整对齐方式_【求职技巧】给少数人:硅谷BAT级别的简历这么写...

我什么都不会”,“我什么都没干”,“这个项目很水”,这是我在帮别人修改简历时听到的最多的几句话。难道你真的什么都不会吗?真的什么都没干吗?真的很水吗?其实很多情况下,是这样的。 但是很水就放弃治疗了吗?不会的。放下无谓的抱怨和遗憾,好好梳理自己,认真编…

c语言八皇后问题经典算法,经典算法之八皇后问题

八皇后问题是一个古老而又著名的问题,是学习回溯算法的一个经典案例。今天我们就一起来探究一下吧! 时间退回到1848年,国际西洋棋棋手马克斯贝瑟尔提出了这样的一个问题, 在88格的国际象棋上摆放八个皇后,使其不能互相…

从八皇后问题思考回溯法

一、八皇后问题 八皇后是经典的回溯法问题,题目是说将八个皇后,放到88的国际象棋棋盘中中,使得任意两个皇后都不能在同一行、同一列以及同一条对角线上。下图是一个四皇后的搜索示意图。 八皇后问题可以通过暴力法求解,代码也很…

八皇后问题(Python)

一.问题简介 八皇后问题: 如何能在 8*8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了到达此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 二.几种思路和方法 1.回溯法递归思想 如图所…

八皇后问题详解(四种解法)

所有源码都在github上(https://github.com/seasonyao/eight_queen_question) 如果你去百度百科八皇后这个问题,你会发现人家也是历史上有头有脸的一个问题,最后一句“计算机发明后就有一万种方式解决这个问题”读起来也让程序猿们很快活。闲话少说,开始阐述我的思路: 最…

八皇后问题

八皇后问题 八皇后问题(英文:Eight queens),是由国际西洋棋棋手马克斯贝瑟尔于1848年提出的问题,是回溯算法的典型案例。 问题表述为:在88格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或…

八皇后问题(适合初学者的写法)C语言

什么是八皇后问题: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出:在88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能…

八皇后问题,秒懂递归回溯(有图详解|c语言)

目录 👸🏻前言 👸🏻题目介绍 👸🏻引入: 👸🏻解决思路: 👸🏻理论存在,实践开始! 👸&#x1f…

利用ngrok实现域名映射局域网ip

前言 相信很多开发者都有这样的需求,需要让外网访问你本地的服务器,方便调试本地代码,或者让别人体验到自己做的应用。那么这时,我们需要做的就是将我们本地的端口映射到一个外网的端口上,也就是内网穿透。常见的解决…

python调用手机摄像头,实现实时调用摄像头,需要你的电脑和手机在同一个局域网内

1、android手机上安装一款APP:IP摄像头,app的图片如上图 2.调用代码如下 import cv2cv2.namedWindow("camera", 1) # 开启ip摄像头 video "http://admin:admin10.0.0.32:8081/" # 此处后的ipv4 地址需要改为app提供的地址 cap c…