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中音频wavesurfer.js的使用方法
Feb 20 Vue.js
vue单元格多列合并的实现
Nov 26 Vue.js
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
vue引入Excel表格插件的方法
Apr 28 Vue.js
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
vue 自定义组件添加原生事件
Apr 21 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
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
int在python中的含义以及用法
2019/06/27 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
如何用Python 加密文件
2020/09/10 Python
本科毕业生专业自荐书范文
2014/02/05 职场文书
房屋转让协议书
2014/04/11 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
建筑横幅标语
2014/10/09 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
毕业典礼邀请函
2015/01/31 职场文书
内勤岗位职责
2015/02/10 职场文书
国庆阅兵观后感
2015/06/15 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python