uniapp版本:滑块拼图验证码,有后端,简单几步即可实现,小程序、h5都可以用 - DCloud 插件市场
Vue版本及cdn版本可以查阅文档: 行为验证 | Poster 文档
示例代码:
<template>
<view id="app">
<button @click="open">验证</button>
<slider-captcha
v-model="visible"
:options="options"
:loading="loading"
@check="check"
@close="close"
@refresh="getSliderOptions"
@error="getSliderOptions"
>
<!-- vue2 -->
<view slot="title">自定义标题-安全验证</view>
<view slot="successText">自定义成功提示-登录中</view>
<view slot="errorText">自定义错误提示-是不是太难了换一个</view>
<view slot="tips">自定义提示拖动下方滑块完成拼图</view>
<!-- <view slot="question">自定义提示</view> -->
<!-- vue2 -->
<!-- vue3 -->
<template #title>自定义标题-安全验证</template>
<template #successText>自定义成功提示-登录中</template>
<template #errorText>自定义错误提示-是不是太难了换一个</template>
<template #tips>自定义提示拖动下方滑块完成拼图</template>
<!-- <template #question>自定义提示</template> -->
<!-- vue3 -->
</slider-captcha>
</view>
</template>
<script>
import SliderCaptcha from '@/components/kkokk-slider-captcha.vue'
export default {
components:{SliderCaptcha},
data(){
return {
visible: false,
loading: false,
options: {}
}
},
methods: {
// 打开触发
open() {
this.visible = true
this.getSliderOptions()
},
// 验证
check(sliderKey, sliderX, done, error)
{
// 这里是验证是否成功的接口
this.loading = true
uni.request({
url: 'http://192.168.10.76:8111/',
header: {
// 'Content-Type': 'application/x-www-form-urlencoded'
'Content-Type': 'application/json' //自定义请求头信息
},
data:{
sliderKey:sliderKey,
sliderX:sliderX
},
method:'POST',//请求方式,必须为大写
success: (res) => {
this.loading = false
done()
},
fail: () => {
this.loading = false
error()
}
})
},
// 关闭触发
close() {
},
// 获取滑块验证参数
getSliderOptions()
{
this.loading = true
uni.request({
url: 'http://192.168.10.76:8111/',
header: {
// 'Content-Type': 'application/x-www-form-urlencoded'
'Content-Type': 'application/json' //自定义请求头信息
},
method:'GET',//请求方式,必须为大写
success: (res) => {
const {img, key, y} = res.data
this.options = {
sliderImg: img,
sliderKey: key,
sliderY: y
}
this.loading = false
}
})
}
}
}
</script>
使用效果:
唯一不足的是:依赖的后端环境是php