最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue集成阿里云做滑塊驗證的實踐

 更新時間:2022年01月19日 14:54:44   作者:涼城a  
滑塊驗證是比較常見的人機鑒別的方法,本文主要介紹了Vue集成阿里云做滑塊驗證,具有一定的參考價值,感興趣的可以了解一下

前言

滑塊驗證是比較常見的人機鑒別手段,但是自己做一時半會還真搞不出來,想想這玩意還挺難琢磨,怎么識別是否是人機呢?本文介紹Vue+阿里云驗證做出這個小功能。

集成阿里云驗證

前端需要什么

  • appkey
  • scene
  • 后端配合

引入阿里云驗證

public/index.html

<head>
? <script src="https://g.alicdn.com/AWSC/AWSC/awsc.js"></script>
</head>

vue.config.js

module.exports = {
? configureWebpack: {
? ? externals: {
? ? ? AWSC: 'AWSC',
? ? },
? }
}

封裝一個驗證組件

思路其實很簡單,功能也單一。

  • 初始化加載阿里云驗證控件
  • 可刷新驗證控件

下面說兩個重點

1. 初始化放在mounted,是因為涉及到Dom加載問題,created時Dom并未加載完成會報錯。
2. Watch里面監(jiān)聽是否刷新
3.. 記得樣式自定義下

下面開始寫組件
NoCaptcha.vue

<template>
? <div>
? ? <div id="nc">

? ? </div>
? </div>
</template>

<script>
export default {
? // 驗證成功后,服務端報錯(如賬號/密碼等錯誤),需要重置滑塊
? props: {
? ? reload: {
? ? ? type: Boolean,
? ? ? default: false,
? ? },
? },
? data() {
? ? return {
? ? ? ic: '', // noCaptcha實例
? ? };
? },
? watch: {
? ? reload: {
? ? ? handler(newV) {
? ? ? ? console.log(newV);
? ? ? ? if (newV) {
? ? ? ? ? this.nc.reset(); ?// 重置滑塊
? ? ? ? }
? ? ? },
? ? },
? },
? mounted() {
? ? this.init(); // 初始化方法
? },
? methods: {
? ? init() {
? ? ? const self = this;
? ? ? // 實例化nc
? ? ? // eslint-disable-next-line no-undef
? ? ? AWSC.use('nc', function(state, module) {
? ? ? ? // 初始化
? ? ? ? self.nc = module.init({
? ? ? ? ? // 您可以在阿里云驗證碼控制臺的配置管理頁簽找到對應的appkey字段值,請務必正確填寫。
? ? ? ? ? appkey: 'FFFF0N00000000005CE9',
? ? ? ? ? // 您可以在阿里云驗證碼控制臺的配置管理頁簽找到對應的scene值,請務必正確填寫。
? ? ? ? ? scene: 'nc_login',
? ? ? ? ? // 滑塊渲染的DOM id。
? ? ? ? ? renderTo: 'nc',
? ? ? ? ? // 您可以在該回調(diào)參數(shù)中將會話ID(sessionId)、簽名串(sig)、請求唯一標識(token)字段記錄下來,隨業(yè)務請求一同發(fā)送至您的服務端調(diào)用驗簽。
? ? ? ? ? success: function(data) {
? ? ? ? ? ? data.scene = 'nc_login'
? ? ? ? ? ? self.$emit('slideCallback', data);
? ? ? ? ? },
? ? ? ? ? // 滑動驗證失敗時觸發(fā)該回調(diào)參數(shù)。
? ? ? ? ? fail: function(failCode) {
? ? ? ? ? ? this.$message(`滑動驗證失敗,失敗編號${failCode}`);
? ? ? ? ? ? console.log(failCode);
? ? ? ? ? },
? ? ? ? ? // 驗證碼加載出現(xiàn)異常時觸發(fā)該回調(diào)參數(shù)。
? ? ? ? ? error: function(errorCode) {
? ? ? ? ? ? this.$message(`驗證碼加載異常,異常編號${errorCode}`);
? ? ? ? ? ? console.log(errorCode);
? ? ? ? ? ? self.$emit('slideCallback', {cls:false});
? ? ? ? ? },
? ? ? ? });
? ? ? });
? ? },
? },
};
</script>

<style lang="scss" scoped>
#nc {
? width: 100%;
? display: contents;
}
/deep/.nc-container #nc_1_wrapper {
? width: 100%;
? height: 36px;
? line-height: 36px;
? #nc_1_n1t,
? #nc_1__bg,
? #nc_1_n1z,
? #nc_1__scale_text,
? .nc-lang-cnt {
? ? height: 36px;
? ? line-height: 36px;
? }
}
</style>

使用組件

需要考慮的問題

  • 驗證控件沒加載出來的情況怎么辦?(例如IE不支持)
  • 運維人員不需要
  • 有用戶名密碼,再去驗證自動調(diào)用登錄事件

很簡單驗證控件加載失敗會有個回調(diào),讓后端加個參數(shù),沒加載驗證組件,讓他知道予以通行就好

<template>
? // 其他代碼略
? <NoCaptcha @slideCallback="finishSlide" :reload="reload" />
</template>

<script>
// 其他代碼略
import NoCaptcha from '@/components/NoCaptch.vue';

data() {
? return {
? ? reload: false,
? }
},
method: {
? // 點擊登錄
? login() {
? ? // 驗證略
? ? this.reload = false; // 驗證通過后,重置滑塊設置為false
? ? // 后端登錄接口
? ? xx()
? ? .then(() => {
? ? ? ?// 登錄成功代碼略
? ? })
? ? .catch((err) => {
? ? ? ?// 其他代碼略
? ? ? ?this.reload = true; // 需要重置滑塊
? ? ? ?console.log(err || '該用戶無菜單權限,請聯(lián)系管理員'); // 錯誤提示
? ? });
? },
? // 完成滑動
? finishSlide(data) {
? ? // 按需使用返回值
? ? console.log('會話ID', data.sessionId)
? ? console.log('簽名串', data.sig)
? ? console.log('滑塊請求的token', data.token)
? ??
? ? ?if (data.cls === false) {//驗證加載失敗
? ? ? ? this.loginForm.cls = false
? ? ? }

? ? ? if (data.sessionId) {//非人機操作
? ? ? ? this.loginForm.scene = data.scene
? ? ? ? this.loginForm.ncToken = data.token
? ? ? ? this.loginForm.sig = data.sig
? ? ? ? this.loginForm.sessionId = data.sessionId
? ? ? ? delete this.loginForm.cls
? ? ? }

? ? ? if (this.loginForm.username && this.loginForm.password) {//填過用戶名密碼
? ? ? ? this.login()
? ? ? }
? },
}
</script>

思考

  • 如果這個控件讓前端自己做或者后端自己做,能實現(xiàn)嗎?
  • 這個滑動驗證機制明白嗎?
  • 這個能實現(xiàn)絕對安全嗎?

PS:我思考了一下,前端需要引入阿里云的sdk,這個sdk會收集用戶數(shù)據(jù)。然后滑塊滑動完成后會將這些數(shù)據(jù)進行分析判斷是否為人機。當然這算法是人家的機密,畢竟要賺錢的嘛。其實這個滑動算法是可以模擬的,也不是絕對安全,只是增加了一個步驟而已。

到此這篇關于Vue集成阿里云做滑塊驗證的實踐的文章就介紹到這了,更多相關Vue 滑塊驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue+java實現(xiàn)時間段的搜索示例

    Vue+java實現(xiàn)時間段的搜索示例

    本文主要介紹了Vue+java實現(xiàn)時間段的搜索示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 在vue2中實現(xiàn)截圖功能的基本步驟

    在vue2中實現(xiàn)截圖功能的基本步驟

    在Vue 2中實現(xiàn)截圖功能,可以使用HTML5的Canvas元素和一些JavaScript代碼來捕獲屏幕或特定元素的截圖,以下是一個簡單的步驟和示例代碼來實現(xiàn)這個功能,需要的朋友可以參考下
    2023-10-10
  • Vue中的Strorage本地化存儲詳解

    Vue中的Strorage本地化存儲詳解

    這篇文章主要介紹了Vue中的Strorage本地化存儲詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue項目中?jsconfig.json概念及使用步驟

    vue項目中?jsconfig.json概念及使用步驟

    這篇文章主要介紹了vue項目中?jsconfig.json是什么,本文僅僅簡單介紹了?jsconfig?.json?的一些基本配置,而?jsconfig?.json提供了大量能使我們快速便捷提高代碼效率的方法,需要的朋友可以參考下
    2022-07-07
  • vue?extend+promise封裝全局彈窗組件

    vue?extend+promise封裝全局彈窗組件

    這篇文章主要為大家詳細介紹了vue?extend+promise封裝全局彈窗組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue中使用計算屬性的知識點總結(jié)

    Vue中使用計算屬性的知識點總結(jié)

    在本篇文章里小編給大家整理了一篇關于Vue中使用計算屬性的知識點總結(jié)內(nèi)容,對此有興趣的朋友們可以跟著學習參考下。
    2021-12-12
  • vue基礎之詳解ElementUI的表單

    vue基礎之詳解ElementUI的表單

    這篇文章主要為大家詳細介紹了vue基礎之ElementUI的表單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • vue3使用mitt.js實現(xiàn)各種組件間的通信

    vue3使用mitt.js實現(xiàn)各種組件間的通信

    在vue工程中,除開vue自帶的什么父子間,祖孫間通信,還有一個非常方便的通信方式,類似Vue2.x?使用?EventBus?進行組件通信,而?Vue3.x?推薦使用?mitt.js,可以實現(xiàn)各個組件間的通信,所以本文給大家介紹了vue3使用mitt.js實現(xiàn)組件通信,需要的朋友可以參考下
    2024-05-05
  • Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號)

    Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號)

    有多個upload組件,每個都需要單獨上傳獲取文件(JS File類型),不需要action上傳到指定url,自定義上傳動作和http操作,下面通過本文給大家分享Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號),感興趣的朋友一起看看吧
    2024-06-06
  • vuejs中監(jiān)聽窗口關閉和窗口刷新事件的方法

    vuejs中監(jiān)聽窗口關閉和窗口刷新事件的方法

    今天小編就為大家分享一篇vuejs中監(jiān)聽窗口關閉和窗口刷新事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09

最新評論

叶城县| 饶河县| 视频| 友谊县| 上犹县| 楚雄市| 东光县| 阳原县| 楚雄市| 微山县| 嘉峪关市| 双流县| 麻江县| 太康县| 泽州县| 汝城县| 林芝县| 常山县| 纳雍县| 东乌珠穆沁旗| 林芝县| 琼中| 门头沟区| 鄱阳县| 金沙县| 什邡市| 宝鸡市| 军事| 建瓯市| 禹州市| 苍南县| 行唐县| 宜宾市| 大足县| 遂溪县| 鹰潭市| 藁城市| 惠东县| 乌鲁木齐县| 达日县| 安阳市|