VUE中使用geetest滑动验证码

一,准备工作:服务端部署

  下载文件gt.gs:  https://github.com/GeeTeam/gt3-python-sdk

  需要说明的是这里的gt.js文件,它用于加载对应的验证JS库。

  1.引入初始化函数  

  main.js

import ‘../static/global/gt.js‘

  2.调用初始化函数进行初始化

  api.js

// 滑动验证码api
export const getGeetest = ()=> {
  return Axios.get(‘captcha_check/‘)  // 后端相对应的API
    .then(res=>res.data)
};
// 登陆apiexport const userLogi = (params)=>{  // 这个参数至少包含用户名和密码,以及滑动验证的3个字段  return Axios.post("account/login/", params)    .then(res=>res.data)};
 

  初始化

getGeetest() {
        this.$api.getGeetest()
          .then(res => {
            let data = res.data;
            //检测data的数据结构, 保证data.gt, data.challenge, data.success有值
            initGeetest({
              // 以下配置参数来自服务端 SDK
              gt: data.gt,
              challenge: data.challenge,
              offline: !data.success,
              new_captcha: true,
              product:‘popup‘,
              width:"100%"
            }, function (captchaObj) {
              // 这里可以调用验证实例 captchaObj 的实例方法
              captchaObj.appendTo("#geetest"); //将验证按钮插入到宿主页面中geetest元素内
              captchaObj.onReady(function () {
                //your code
              }).onSuccess(function () {
                //your code
              }).onError(function () {
                //your code
              })
            })
          })
          .catch(error=>{
            console.log(
              error
            )
          })
      },

    },
    created(){
        this.getGeetest()
      },

部署完成后可以看到

点击进行验证

二,发送登录用户名密码

getValidate()

获取用户进行成功验证(onSuccess)所得到的结果,该结果用于进行服务端 SDK 进行二次验证。getValidate 方法返回一个对象,该对象包含 geetest_challenge,geetest_validate,geetest_seccode 字段

geeGeetest

getGeetest() {
        this.$api.getGeetest()
          .then(res => {
            let data = res.data;
            //请检测data的数据结构, 保证data.gt, data.challenge, data.success有值
            initGeetest({
              // 以下配置参数来自服务端 SDK
              gt: data.gt,
              challenge: data.challenge,
              offline: !data.success,
              new_captcha: true,
              product: ‘popup‘,
              width: "100%"
            }, function (captchaObj) {
              // 这里可以调用验证实例 captchaObj 的实例方法
              captchaObj.appendTo("#geetest"); //将验证按钮插入到宿主页面中geetest元素内
              captchaObj.onReady(function () {
                //your code
              }).onSuccess(function () {
                //your code
                this.validResult = captchaObj.getValidate();

              }).onError(function () {
                //your code
              })
            })
          })
          .catch(error => {
            console.log(
              error
            )
          })
      },

loginHandler

loginHandler() {
        let params = {
          username: this.username,
          password: this.password,
          geetest_challenge: this.validResult.geetest_challenge,
          geetest_validate: this.validResult.geetest_validate,
          geetest_seccode: this.validResult.geetest_seccode
        };
        this.$api.userLogi(params)
          .then(res => {
            console.log(
              res
            )
          }).catch(error => {
          console.log(
            error
          )
        })

      }

参考官方文档:https://docs.geetest.com/install/deploy/client/web

原文地址:https://www.cnblogs.com/zivli/p/10656329.html

时间: 2024-11-09 01:52:58

VUE中使用geetest滑动验证码的相关文章

Django中使用geetest实现滑动验证

下载第三方模块 导入模块social-auth-app-django 和geetest 提前去官网下载gt.js或者引入http://static.geetest.com/static/tools/gt.js pip install social-auth-app-django pip install geetest 在django引用 1.目录结构 2.html层 <!DOCTYPE html> <html lang="en"> <head> &l

在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTick()方法 当Vue构造器里的data值被修改完成后会调用这个方法,也相当于一个钩子函数吧,和构造器里的updated生命周期很像. 在数据初始化完毕之后,再初始化swiper就不会出现问题了 this.$nextTick(function () { var swiper = new Swiper(

破解极验滑动验证码

阅读目录 一 介绍 二 实现 三 说明 一 介绍 一些网站会在正常的账号密码认证之外加一些验证码,以此来明确地区分人/机行为,从一定程度上达到反爬的效果,对于简单的校验码Tesserocr就可以搞定,如下 但一些网站加入了滑动验证码,最典型的要属于极验滑动认证了,极验官网:http://www.geetest.com/,下图是极验的登录界面 现在极验验证码已经更新到了 3.0 版本,截至 2017 年 7 月全球已有十六万家企业正在使用极验,每天服务响应超过四亿次,广泛应用于直播视频.金融服务.

滑动验证码验证

selenium +chrome+ firefox + webdriver 遇到的坑 lunix中启动webdriver时报错一: 测试代码为: #!/usr/bin/python   # -*- coding: utf-8 -*-       from selenium import webdriver     driver = webdriver.Firefox()   driver.get("https://www.baidu.com") 运行报错信息如下: Traceback

better-scroll在vue中的应用

在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 微信 -> 钱包->滴滴出行"体验效果. 什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在 这里 .better-scroll 也很强大,不仅可以做普通的滚动列表,还可以做轮播图.picker 等等. 不少同学可能用过 better-scroll,我收到反馈最多

淘宝滑动验证码研究

引言 悠闲的时候,总会去找些事做做.前些天在登录淘宝的时候,发现了滑动验证码,虽然已经不是什么新事物,但还是产生了很大的兴趣. 传统的字符输入验证码,变为了滑动验证码,这一看就是产品大师的手笔啊,不知道申请专利没有. 这种“情感化”的验证码设计,可破解度高不高呢?如果是可破解度高,那就真是验证码的一次革命变新了.还是让我先了解一下滑动验证码的资料吧! 没有Google就百度,搜一搜,让我很震惊,一般搜技术的东西,大多数来源于csdn,blogs.cn,更牛批一点的是来源于stackoverflo

better-scroll在vue中的坑

在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开"微信 -> 钱包->滴滴出行"体验效果. 我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll. 什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll

selenium处理极验滑动验证码

要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题https://www.zhihu.com/question/28833985,我按照这思路去大概实现了一下. 1.使用htmlunit(这种方式我没成功,模拟鼠标拖拽后轨迹没生成,可以跳过) 我用的是java,我首先先想到了用直接用htmlunit,我做了点初始化 private void initWebClient() { if (webClient != null) { return; } we

gsxt滑动验证码

最后,谈谈滑动验证码. 目前,工商网站已经全面改版,全部采用了滑动验证码,上面绝大多数思路都失效了.对于滑动验证码,网上能搜到的解决方案基本都是下载图片,还原图片,算出滑动距离,然后模拟js来进行拖动解决,我们来看下能否不模拟拖动来解决这个问题. 以云南工商网站为例,首先抓包看过程. 1. http://yn.gsxt.gov.cn/notice/pc-geetest/register?t=147991678609,response: 2. 下载验证码图片 3. http://yn.gsxt.g