vue使用Google Recaptcha验证的实现示例


Posted in Vue.js onAugust 23, 2021

我们最近的项目中需要使用谷歌机器人验证,这个最主要的就是要有vpn,还需要有公司申请的google账号(自己申请的没用)用于商用的,利用这个账号去申请秘钥,然后有了秘钥之后就可以了。
部分代码如下:

1.首先正是我封装的google机器人验证组件:

<template>
    <div ref="grecaptcha">
    </div>
    <!-- <div id="robot"></div> -->

</template>
<script src="http://www.recaptcha.net/recaptcha/api.js?οnlοad=ReCaptchaLoaded&render=explicit&hl=en" async defer></script>
<script>
export default {
  props: ["sitekey"], // 所要传的秘钥
  
  mounted() {
    window.ReCaptchaLoaded = this.loaded;
    var script = document.createElement("script");
    script.src =
      "https://recaptcha.net/recaptcha/api.js?οnlοad=ReCaptchaLoaded&render=explicit";
    document.head.appendChild(script);
  },
  methods: {
    loaded() {
       window.grecaptcha.render(this.$refs.grecaptcha, {
        sitekey: this.sitekey,
        /**
        * res返回的是goole的验证情况,
        * 成功返回字符串
        * 失败不返回字符串
        * 所以根据字符串判断验证情况
        */
        callback: res => {// true  - 验证成功 // false - 验证失败 
    
            res.length > 0 ? this.$emit("getValidateCode", false) :  his.$emit("getValidateCode", true)
        }
      });
      // grecaptcha.render('robot', {
      //     sitekey: this.sitekey,
      //     /**
      //     * res返回的是goole的验证情况,
      //     * 成功返回字符串
      //     * 失败不返回字符串
      //     * 所以根据字符串判断验证情况
      //     */
      //     theme: 'light', //主题颜色,有light与dark两个值可选
      //     size: 'normal',//尺寸规则,有normal与compact两个值可选
      //     callback: res => {
      //         res.length > 0 ?  this.$emit("getValidateCode", true) :  this.$emit("getValidateCode", false)
      //         // true  - 验证成功 // false - 验证失败 
      //     }
      // }); 
     
    }
  },
};
</script>
<style>

</style>

2.在需要的地方使用:

<template>
  <div>
    <div class="home-content">
      <div class="home-content-img">
        <!-- <div class="home-content-imgtop"> -->
          <img src="../../assets/image/202010_JP NIGHT 店??鬏d??I用?料.002.png" alt="">
          <img src="../../assets/image/202010_JP NIGHT 店??鬏d??I用?料.003.png" alt="">
        <!-- </div> -->
        <!-- <div class="home-content-imgbottom"> -->
          <img src="../../assets/image/202010_JP NIGHT 店??鬏d??I用?料.004.png" alt="">
          <img src="../../assets/image/202010_JP NIGHT 店??鬏d??I用?料.005.png" alt="">
        <!-- </div> -->
      </div>
      <div class="home-content-bottom">
        <p> <a href="http://www.jp-night.com/terms.html" rel="external nofollow" >利用??</a>· <a href="http://www.jp-night.com/privacy.html" rel="external nofollow" >プライバシ一ポリシ一</a>に同意の上 に同意の上でお?みください </p>
        <div class="content-google">
          <google-recaptcha ref="recaptcha" :sitekey="key" @getValidateCode='getValidateCode' v-model="validateCode"></google-recaptcha>
        </div>
        <div class="login">
          <button :class="isNext ?'login-botton-background':'login-botton'" :disabled="isNext" @click="login()">店?揭?を?昴激工?lt;/button>
        </div> 
      </div>
      
    </div>
  </div>
  
</template>

<script>
import GoogleRecaptcha from '../../common/module/GoogleRecaptcha'
export default {
  data() {
    var checkCode = (rule, value, callback) => {
      if (value == false) {
        callback(new Error('请进行人机验证'));
      } else {
        callback();
      }
    };
    return {
      key: '6Ld9xxgaAAAAAI4xn7seMCmqbxIpVsJ_dwrZu9z1',
      validateCode: false,
      isNext:false
    };
  },
  created(){
    
  },
  mounted(){
    
  },
  components:{
    GoogleRecaptcha
  },
  methods:{
    login(){
      sessionStorage.setItem('token',true)
      
      this.$router.push({
        path: "/shops",
        query: { out: true }
      })
    },
    getValidateCode(value) {
      console.log(value);
      
      this.isNext = value
    },
  }
};
</script>

<style lang="scss" scoped>
@import "./css/pc.css";
@import "./css/ipad.css";
@import "./css/phone.css";
#rc-anchor-container {
    width: 335px;
}

</style>

3.就完成啦,谷歌机器人就可以使用啦。

示意图:

vue使用Google Recaptcha验证的实现示例

到此这篇关于vue使用Google Recaptcha验证的实现示例的文章就介绍到这了,更多相关vue Google Recaptcha验证内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
详解Vue中的自定义指令
Dec 07 Vue.js
Vue实现点击当前行变色
Dec 14 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
vue backtop组件的实现完整代码
Apr 07 Vue.js
Vue详细的入门笔记
May 10 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
Vue操作Storage本地化存储
Apr 29 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 #Vue.js
Vue3.0 手写放大镜效果
vue项目多环境配置(.env)的实现
Vue Element-ui表单校验规则实现
Jul 09 #Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 #Vue.js
Vue项目打包、合并及压缩优化网页响应速度
idea编译器vue缩进报错问题场景分析
You might like
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php printf输出格式使用说明
2010/12/05 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
VUE长按事件需求详解
2017/10/18 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
python处理数据,存进hive表的方法
2018/07/04 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
会计专业推荐信
2013/10/29 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
大学活动总结格式
2014/04/29 职场文书
土建工程师岗位职责
2014/06/10 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL