vue滑块验证,原理,demo

全新人机验证方式,高效拦截机器行为,业务安全第一道防线。
互联网50%以上的流量都来自机器,行为验证本质上是利用生物行为特征模型进行人机识别,用在注册登录、防刷红包优惠券、数据反爬等各种调用接口的场景。
滑动验证码对机器的判断,不只是完成拼图,前台用户是看不见的——后台针对用户产生的行为轨迹数据进行机器学习建模,结合设备指纹信息、IP风险、访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果。
所以滑块结束后,会把相应的信息以字段拼接的形式,发送给后台校验,后台得出一个结果后返回前台,是不是允许继续。

vue上使用demo1,luosimao人机验证,免费

1.先封装一个组件ValidateCaptcha,供引入使用
<template>
  <div class="l-captcha" data-site-key="e11777fac0ab293290c12b91484c7a4f" data-callback="getResponse" data-width="100%"></div>
</template>
<script>
export default {
  name: 'validateCaptcha',
  methods: {
    dynamicLoadJs: function (url, callback) {
      var head = document.getElementsByTagName('head')[0]
      var script = document.createElement('script')
      script.type = 'text/javascript'
      script.src = url
      if (typeof callback === 'function') {
        script.onload = script.onreadystatechange = function () {
          if (
            !this.readyState ||
            this.readyState === 'loaded' ||
            this.readyState === 'complete'
          ) {
            callback()
            script.onload = script.onreadystatechange = null
          }
        }
      }
      head.appendChild(script)
    }
  },
  created () {
    const self = this
    this.dynamicLoadJs('//captcha.luosimao.com/static/dist/api.js')
    window.getResponse = (resp) => {
      var els = document.getElementsByName('luotest_response')
      if (els.length === 1 && els[0].value === resp) {
        self.$emit('getValidateRes', resp)
      } else {
        LUOCAPTCHA && LUOCAPTCHA.reset()
      }
    }
  }
}
</script>

2.使用地方调用
<template>
  <div>
    <el-form label-width="90px" :model="formLabelAlign" style="width: 500px">
      <el-form-item label="用户名">
        <el-input v-model="formLabelAlign.username"></el-input>
      </el-form-item>
      <el-form-item label="密码">
        <el-input v-model="formLabelAlign.password"></el-input>
      </el-form-item>
      <el-form-item label="滑动验证">
        <validate-captcha @getValidateRes="getValidateRes"></validate-captcha>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
import ValidateCaptcha from '@/components/captcha/validateCaptcha'
import axios from 'axios'

export default {
  name: 'captcha',
  components: { ValidateCaptcha },
  data () {
    return {
      formLabelAlign: {
        username: '',
        password: '',
        validateToken: ''
      }
    }
  },
  methods: {
    getValidateRes: function (val) {
      const url = this.API + '/site_verify'
      axios.post(url, {
        api_key: '98081c00e21a9dd1aafa71521373d02f',
        response: val
      }).then(res => {
        console.log(res)
      }).catch(err => {
        console.log(err)
      })
    }
  }
}
</script>

2.可以直接使用vue-puzzle-vcode插件,用法基本一样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文章采用阿里云的滑块验证,如果要使用的话,首先注册并申请appKey。 帮助文档:https://help.al...
    陨石坠灭阅读 23,666评论 13 4
  • 一、滑块验证 目前主流的验证码有: 图形验证码 短信验证码 滑块验证码 图中点选验证码滑块验证码又称行为验证,主要...
    无剑_君阅读 10,820评论 2 6
  • 在上一回中说了五行代码找图中滑块验证的缺口位置《python五行代码解决滑块验证的缺口距离识别,破解滑块验证》,本...
    Python之战阅读 11,632评论 2 13
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 9,814评论 0 13
  • 感觉自己有点神经衰弱,总是觉得手机响了;屋外有人走过;每次妈妈不声不响的进房间突然跟我说话,我都会被吓得半死!一整...
    章鱼的拥抱阅读 6,650评论 4 5

友情链接更多精彩内容