vue 阿里云的滑动验证

网址:https://help.aliyun.com/document_detail/121898.html?spm=a2c4g.11186623.6.559.c58f2430eBmuaf

可直接使用

<template>
  <div>
    <div id="__nc" style="margin-left:auto;margin-right:auto;width:80%;height:100px;padding-top:100px;">
        <div id="nc"></div>
    </div>
  </div>
</template>
<script>
  export default {
    name: 'index',
    data() {
      return {
        nc: null
      };
    },
    mounted() {
      let that = this;
      var nc_token = ["CF_APP_1", (new Date()).getTime(), Math.random()].join(':');
      let nc = NoCaptcha.init({
        renderTo: '#nc',
        // appkey: this.appkey,//这个参数需要后台返回 应用类型标识
        // scene: this.scene,//    使用场景标识
        // token: this.token,//滑动验证码的主键
        appkey: 'CF_APP_1',
        scene: 'register',
        token: nc_token,
        trans: {"key1": "code200"},
        elementID: ["usernameID"], //通过Dom的ID属性自动填写trans业务键,可为空。为便于线上问题的排查
        is_Opt: 0, //是否自定义配置底层采集组件。如无特殊场景 使用默认值(0),即不自定义配置底层采集组件
        language: "cn",
        timeout: 10000, 
        retryTimes: 5,
        errorTimes: 5,
        inline: false,
        apimap: { //    用于自定义滑动验证各项请求的接口地址。一般情况,请勿配置该参数。
          // 'analyze': '//a.com/nocaptcha/analyze.jsonp',
          // 'uab_Url': '//aeu.alicdn.com/js/uac/909.js',
        },
        bannerHidden: false,  //验证通过之后默认隐藏。默认值为false
        initHidden: false, //是否默认不渲染。默认值为false。当设置为true时,不自动渲染,需要自行调用show方法进行渲染。
        callback: function (data) {
         /*  前端滑动验证通过时会触发该回调参数。
          您可以在该回调参数中将请求标识(token)、会话ID(sessionid)、签名串(sig)字段记录下来,
          随业务请求一同发送至您的服务端调用验签。 */
          console.log(data,this,'***********************');
          console.log(data.sig,data.csessionid,nc_token,'***********参数************');
          // that.verify_token = this.token;
          // that.sessionid = data.csessionid;
          // that.sig = data.sig;
          window.console && console.log(nc_token)
          window.console && console.log(data.csessionid)
          window.console && console.log(data.sig)
          // var params = {
          //   sign: data.sig,
          //   sessionId: data.csessionid,
          //   token: nc_token,
          //   scene: scene
          // };
          // axios.post("/test/test1", params).then(response => {
          //   console.log(response);
          // });
        },
        error: function (s) {
          console.log(s,'********失败***************')
        }
      });
      NoCaptcha.setEnabled(true);
      nc.reset();//请务必确保这里调用一次reset()方法
      NoCaptcha.upLang('cn', {
        'LOADING': "加载中...",//加载
        'SLIDER_LABEL': "请向右滑动验证",//等待滑动
        'CHECK_Y': "验证通过",//通过
        'ERROR_TITLE': "非常抱歉,这出错了哟...",//拦截
        'CHECK_N': "验证未通过", //准备唤醒二次验证
        'OVERLAY_INFORM': "经检测你当前操作环境存在风险,请输入验证码",//二次验证
        'TIPS_TITLE': "验证码错误,请重新输入"//验证码输错时的提示
      });
      this.nc = nc;
    }
  };
</script>
<style lang="scss">
/* 滑动条高度、边框、背景色等 */
._nc .stage1 .slider {
    height: 52px;
    border-radius: 26px;
    box-shadow: 0 0 3px #999;
    background-color: #ddd;
}
/* 滑动条 */
._nc .stage1 .track div {
    border-radius: 26px;
    color: #fff;
}
/* 滑动条背景色-正常 */
._nc .stage1 .bg-green {
    background-color: #78c430;
}
/* 滑动条背景色-失败 */
._nc .stage1 .bg-red {
    background-color: #ff5500;
}
._nc .stage1 .button {
  border-radius: 50%;
}
/* 各个状态的icon */
// 等待滑动:"icon iconfont icon-slide-arrow"
// 验证出错:"icon no iconfont icon-close"
// 验证通过:"icon yes iconfont icon-ok"

// 拦截状态
._nc .stage3 .title {
    font-size: 20px;  
    color: #777;
    width: 100%;
}
/* 图标 */
// ._nc .icon {
//     width: 32px;
//     height: 32px;
//     background-image: url("//g.alicdn.com/sd/nch5/icons.png?v=2");
// }
// ._nc .stage3 .menu.refresh .icon {
//     background-position: -128px 0;
// }
// ._nc .stage3 .menu.feedback .icon {
//     background-position: -160px 0;
// }
// /* 刷新链接 */
// ._nc .stage3 .menu.refresh {
//     border-right: 2px solid #ccc;
// }
</style>

 

posted @ 2020-06-17 10:20  无所谓。。。  阅读(2275)  评论(0编辑  收藏  举报