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使用require.context实现动态注册路由
Dec 25 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
教你部署vue项目到docker
Apr 05 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
利用javascript查看html源文件
2006/11/08 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
使用python实现knn算法
2017/12/20 Python
python实现excel读写数据
2021/03/02 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
森林防火工作方案
2014/02/14 职场文书
文艺演出策划方案
2014/06/07 职场文书
应急处置方案
2014/06/16 职场文书
雾霾停课通知
2015/04/24 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
公司与个人合作协议书
2016/03/19 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
详解Django的MVT设计模式
2021/04/29 Python