PC项目——vue 脚手架中实现阿里云人机滑动验证

news/2024/7/10 2:19:03 标签: vue, 人机交互

转自๑柯帆๑

找半天才找到这个可用的 vue 脚手架中实现阿里云人机滑动验证

一、报错问题解决

vue_AWSC_is_not_define_4">描述:照官网写的引入方式引入vue报错 AWSC is not define

解决:.html文件引入script标签后

<!-- 阿里滑块 -->
<script src="https://g.alicdn.com/AWSC/AWSC/awsc.js"></script>

在使用滑块的页面中需要再引入一遍script,大概是在页面内容之前要先加载该功能的资源吧

<script type="text/javascript"></script>

二、记录整个项目流程

1.html文件中script标签引入阿里滑块js资源

2.使用滑块的页面或组件中再次进入script标签

3.组件中构建滑块容器

(对于一个页面中嵌套多个组件的登录最好滑块数量不超过两个,亲身项目经历,会导致滑块重置等方法失效)

<div id='nc1'></div>
<div id='nc2'></div>

4.编写滑块初始化方法,我写的是同个路由页面两个滑块切换

单个滑块的方法在阿里滑块官网介绍入口中可以参考

data () {
	ncData: {}, // 用于存放滑动成功后的回调数据
	box1: null, // 用于接收整个滑动对象window.nc
	// 每个容器对应一个box属性,所以我在data中定义了两个box属性
	box2: null
}
methods: {
// 滑块测试
    init (idName, i) { 
    // idName是多个滑块的容器名称,i是data中用来接收整个滑块返回对象的属性
      const myLang = {
        'cn': {
          // 加载状态提示。
          'LOADING': '加载中...',
          // 等待滑动状态提示。
          'SLIDE': '请向右滑动验证',
          // 验证通过状态提示。
          'SUCCESS': '验证通过',
          // 验证失败触发拦截状态提示。
          'ERROR': `哎呀,出错了,点击<a href="javascript:__nc.reset()">刷新</a>再来一次`,
          // 验证失败触发拦截状态提示。
          'FAIL': `验证失败,请重试,点击<a href="javascript:__nc.reset()">刷新</a>再来一次`
        }
      }
      let _this = this
      // 实例化nc
      AWSC.use('nc', function (state, module) {
        // 初始化
        window.nc = module.init({
          // 应用类型标识。它和使用场景标识(scene字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的appkey字段值,请务必正确填写。
          appkey: 'XXXXXXXXXXX',
          // 使用场景标识。它和应用类型标识(appkey字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的scene值,请务必正确填写。
          scene: 'XXXX',
          renderTo: idName, // idName就是要渲染滑动的容器id名,即上面的nc1/nc2
          upLang: myLang,
          success: function (data) {
            _this.ncData = {
            // 将登陆所需要的所有数据存放data中
              sessionId: data.sessionId,
              sig: data.sig,
              token: data.token,
              scene: 'XXXX'
            }
            _this.$message.success('成功,请继续操作')
          },
          // 滑动验证失败时触发该回调参数。
          fail: function (failCode) {
            _this.$message.warning('失败,请点击重试')
          },
          // 验证码加载出现异常时触发该回调参数。
          error: function (errorCode) {
            window.console && console.log(errorCode)
          }
        })
        // 给this.box1/this.box2分别赋值
        _this[i] = window.nc
      })
    }
  }

5.mounted中进行初始化调用

mounted () {
	this.init('nc1', 'box1')
	this.init('nc2', 'box2')
}

6.登录失败或者切换登录时需要重新渲染重置滑块,官网提供了方法

window.nc[方法名] 或 window.nc.方法名
在这里插入图片描述
之前在data中定义了box1/box2,初始化方法中分别对其赋值了,赋值的内容就是该对象,所以重新渲染时使用方法如下

this.box1.reset()
this.box2.reset()
// 记得重置时把滑动成功获得的数据清空
this.ncData = {}

7.结束了


http://www.niftyadmin.cn/n/1660001.html

相关文章

获取cookie中的某个参数值

因为cookie的值是很多keyvalue连接起来的字符串&#xff0c;所以如果要取cookie中某个key的值&#xff1a; function getCookie(name) {let cookieValue null;if (document.cookie && document.cookie ! ) {let cookies document.cookie.split(;);for (let i 0; i &…

vuex——计算属性获取的getter值需要刷新才能更新

vuex——计算属性获取的getter值需要刷新才能更新 描述&#xff1a; // statestate: {leader: null},// gettersgetters: {getLead: state > state.leader}// mutationsmutations: {setLead (state, data) {state.leader data}}, // 页面中赋值 // 登录时改变state.leader…

cmd命令窗口无法使用快捷键处理方法

cmd命令窗口输入CtrlC显示^V的处理方法, 不要使用快捷键CtrlC,CtrlV 直接用右键标记,右键粘贴转载于:https://www.cnblogs.com/wodexiaobiji/p/10848945.html

【Java|golang】2679. 矩阵中的和

给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空&#xff1a; 矩阵中每一行选取最大的一个数&#xff0c;并删除它。如果一行中有多个最大的数&#xff0c;选择任意一个并删除。 在步骤 1 删除的所有数字中找到最大的一个…

vue——base64图片转网络URL

vue——base64图片转网络URL src支持base64图片&#xff0c;正常base64图片可以直接复制到图片src&#xff0c;也可以将其转为URL // data url: XXXXXXXX // base64编码 imgUrl: // 图片路径// methods base64ImgtoFile (dataurl, filename file) {const arr dataurl.spli…

反爬机制

robots 防君子不防小人 UA伪装 request 设置headers参数 ajax 动态数据json 图片懒加载 src2/origin 数据加密 js代码里面一些function 加密算法 验证码 云打码/超级鹰12306 cookie session会话 哈希值 xpath element 里面搜索 # …

Vue——按钮防抖

Vue——按钮防抖 按钮多次点击&#xff0c;只执行点击动作完成的一次事件触发 1.创建utils/once.js文件 export const Debounce (fn, t) > {const delay t || 500let timeoutreturn function () {const context thisconst args argumentsif (!timeout) {timeout set…

链改也是一种供给侧改革 企业上链你准备好了吗?

随着区块链、移动互联网、云计算、人工智能等高新技术的发展&#xff0c;众多传统企业尤其是传统制造业如若不能摆脱低端产业链&#xff0c;就随时会被时代所淘汰。从2015年开始的供给侧改革到今天的链改&#xff0c;传统企业也在经历巨变。 链改就是对传统股份制企业进行区块链…