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

作者:queen_rain 时间:2024-05-13 09:08:25 

我们最近的项目中需要使用谷歌机器人验证,这个最主要的就是要有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 店舗掲載営業用資料.002.png" alt="">
         <img src="../../assets/image/202010_JP NIGHT 店舗掲載営業用資料.003.png" alt="">
       <!-- </div> -->
       <!-- <div class="home-content-imgbottom"> -->
         <img src="../../assets/image/202010_JP NIGHT 店舗掲載営業用資料.004.png" alt="">
         <img src="../../assets/image/202010_JP NIGHT 店舗掲載営業用資料.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()">店舗揭載を応募する</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验证的实现示例

来源:https://blog.csdn.net/queen_rain/article/details/112288592

标签:vue,Google,Recaptcha,验证
0
投稿

猜你喜欢

  • python根据list重命名文件夹里的所有文件实例

    2022-02-12 15:54:30
  • Python "手绘风格"数据可视化方法实例汇总

    2023-01-30 03:12:23
  • Python基于内置库pytesseract实现图片验证码识别功能

    2022-05-26 07:40:53
  • ubuntu16.04在python3 下创建Django项目并运行的操作方法

    2021-02-01 11:03:50
  • python中设置超时跳过,超时退出的方式

    2023-12-25 01:38:20
  • python如何实现MK突变检验方法,代码复制修改可用

    2022-04-10 13:31:18
  • Python中json库的操作指南

    2021-10-11 11:04:43
  • python实现的多任务版udp聊天器功能案例

    2021-07-31 21:49:29
  • golang连接MongoDB数据库及数据库操作指南

    2024-01-26 18:14:29
  • Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份

    2024-01-13 19:12:27
  • python基于moviepy实现音视频剪辑

    2023-08-21 14:56:47
  • Vue前后端不同端口的实现方法

    2024-05-28 16:03:44
  • 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法

    2011-11-03 16:49:09
  • 微信小程序如何处理token过期问题

    2023-07-02 05:23:54
  • pytest之assert断言的具体使用

    2021-11-21 18:04:26
  • python读取与处理netcdf数据方式

    2021-11-09 02:45:01
  • 利用php+mcDropdown实现文件路径可在下拉框选择

    2023-09-11 15:18:02
  • 微信小程序wx.request拦截 器使用详解

    2023-07-22 09:11:55
  • SQL Server 创建约束图解(唯一 主键)

    2024-01-26 08:20:37
  • python生成并处理uuid的实现方式

    2022-11-18 12:37:26
  • asp之家 网络编程 m.aspxhome.com