2.0.0 • Published 4 years ago

jqsv v2.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

滑动验证

canvas滑动验证码 使用jquery写的组件。

你可以在网址查看需要 接口返回的相关数据格式

使用效果

npm.io

项目特色

  • 使用typescript语言编写搭建
  • 已在线上运行
  • 完美支持移动端与PC端
  • 需要服务器端支持

使用方法

import Jqsv from 'jqsv'
import 'jqsv/es/common.css'
const app = document.getElementById('app')
const xhrDataMock = await fetchData(Date.now())
const JqsvConfig = {
  data: xhrDataMock,
  refresh(updateComponentData) {
    refreshData(Date.now()).then((data) => updateComponentData(data))
  },
  submit({ vaildToken, requestToken, timespan, point }, callback) {
    // featch 模拟服务器验证过程 
    if (point > 83 && point < 100) {
      callback().then(() => {
        // do something,such as login
      })
    } else {
      callback('校验值与实际值出现误差')
    }
  }
}

let instance = null

app.addEventListener('click', async function () {
  if (instance === null) return new Jqsv(JqsvConfig, el)
  if (instance.state === 'loaded') {
    instance.show()
  } else {
    instance = new Jqsv(JqsvConfig, el)
  }
})

关于JqsvConfig,这是一个配置对象,该对象的属性为

属性名类型是否必填说明
dataobject必须传入组件数据
refreshfunction必须传入当组件刷新时调用函数,你你应该在这里刷新组件数据
closefunction可选组件关闭后的钩子函数
submitfunction必须传入组件滑动后提交用的调用函数

关于data对象,需要说明一下他的属性 | 属性名 | 类型 | 是否必填 | 说明 | | ---------- | -------- | -------- | -------------------------------------------------------------------------------------------- | | imgWidth | number | 是 | 背景图片宽度 | | imgHeight | number | 是 | 背景图片高度 | | normal | string | 是 | 背景图片(base64)字符串 | | small | string | 是 | 拼图图片(base64)字符串 | | array | number[] | 是 | 乱序数组,服务器将0...19这个数组乱序后,对原图片进行切割,前端代码根据该乱序数组将图片还远 | | locationY | number | 是 | 拼图初始化位置 | | validToken | string | 是 | 拼图提交验证时凭证,服务器会维护一个{validToken,value}的验证,根据该validToken验证提交参数 |

例如 :

export const data1 = {
  imgWidth: 260,
  imgHeight: 160,
  normal:
    'data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...',
  small:
    'data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...',
  array: [15, 13, 12, 5, 4, 7, 1, 17, 3, 8, 0, 11, 9, 2, 16, 6, 18, 14, 10, 19],
  locationY: 35,
  validToken: '9c619f596a504ccbaf18e86fb2e09352'
}

项目运行

npm install
npm run dev 
npm run build 

业务流程图

npm.io

2.0.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago