成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Vue滑塊驗證碼組件anji-captcha的使用案例詳解

瀏覽:248日期:2022-06-10 13:30:55
目錄
  • 說明
  • 快速開始
    • 前端
    • 后端
  • 測試

    說明

    最近需要改一下首頁界面,將之前的字符驗證碼改成滑塊驗證碼(這樣更好用一些),找了一下發現了anji-captcha這個組件,效果如下

    快速開始

    前端

    首先將倉庫克隆下來->https://github.com/anji-plus/captcha.git,然后在自己的工程里copy需要的文件

    1)復制view/vue/src/components/verifition文件夾,到自己工程對應目錄下復制view/vue/src/assets到自己工程對應目錄下2)安裝請求和加密依賴npm install axios  crypto-js   -S

    前端請求使用的axios,需要換成自己工程的axios,這樣請求后端路徑才會正確,配置位于verifition/api/index.js,同時如果后端有對請求攔截請過濾掉/captcha/get和/captcha/check兩個后端接口

    示例使用

    <template>  <div>    <Verify      @success="success"      :mode=""pop""      :captchaType=""blockPuzzle""      :imgSize="{ width: "330px", height: "155px" }"      ref="verify"    ></Verify>    <button @click="useVerify">調用驗證組件</button>  </div></template><script>//引入組件import Verify from "@/components/verifition/Verify";export default {  name: "app",  components: {    Verify,  },  methods: {    success(params) {console.log("成功,下面是二次驗證")      // params 返回的二次驗證參數, 和登錄參數一起回傳給登錄接口,方便后臺進行二次驗證    },    useVerify() {      this.$refs.verify.show();    },  },};</script>

    后端

    有starter版本的包,還是比較方便的

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency>    <groupId>com.anji-plus</groupId>    <artifactId>spring-boot-starter-captcha</artifactId>    <version>1.2.8</version></dependency>

    application.yml

    server:  port: 8080# 滑動驗證,底圖路徑,不配置將使用默認圖片# 支持全路徑# 支持項目路徑,以classpath:開頭,取resource目錄下路徑,例:classpath:images/jigsawspring:  redis:    database: 3    host: 151.168.99.100    password: "123456"    port: 6379aj:  captcha:    jigsaw: classpath:images/jigsaw    #滑動驗證,底圖路徑,不配置將使用默認圖片    ##支持全路徑    # 支持項目路徑,以classpath:開頭,取resource目錄下路徑,例:classpath:images/pic-click    pic-click: classpath:images/pic-click    # 對于分布式部署的應用,我們建議應用自己實現CaptchaCacheService,比如用Redis或者memcache,    # 參考CaptchaCacheServiceRedisImpl.java    # 如果應用是單點的,也沒有使用redis,那默認使用內存。    # 內存緩存只適合單節點部署的應用,否則驗證碼生產與驗證在節點之間信息不同步,導致失敗。    # !!! 注意啦,如果應用有使用spring-boot-starter-data-redis,    # 請打開CaptchaCacheServiceRedisImpl.java注釋。    # redis ----->  SPI: 在resources目錄新建META-INF.services文件夾(兩層),參考當前服務resources。    # 緩存local/redis...    cache-type: redis    # local緩存的閾值,達到這個值,清除緩存    cache-number: 1000    # local定時清除過期緩存(單位秒),設置為0代表不執行    timing-clear: 180    # 驗證碼類型default兩種都實例化。    type: default    # 漢字統一使用Unicode,保證程序通過@value讀取到是中文,可通過這個在線轉換;yml格式不需要轉換    # https://tool.chinaz.com/tools/unicode.aspx 中文轉Unicode    # 右下角水印文字(我的水印)    water-mark: Yunlingfly    # 右下角水印字體(不配置時,默認使用文泉驛正黑)    # 由于宋體等涉及到版權,我們jar中內置了開源字體【文泉驛正黑】    # 方式一:直接配置OS層的現有的字體名稱,比如:宋體    # 方式二:自定義特定字體,請將字體放到工程resources下fonts文件夾,支持ttf\ttc\otf字體    # aj.captcha.water-font=WenQuanZhengHei.ttf    # 點選文字驗證碼的文字字體(文泉驛正黑)    # aj.captcha.font-type=WenQuanZhengHei.ttf    # 校驗滑動拼圖允許誤差偏移量(默認5像素)    slip-offset: 5    # aes加密坐標開啟或者禁用(true|false)    aes-status: true    # 滑動干擾項(0/1/2)    interference-options: 1    history-data-clear-enable: true    # 接口請求次數一分鐘限制是否開啟 true|false    req-frequency-limit-enable: true    # 驗證失敗5次,get接口鎖定    req-get-lock-limit: 5    # 驗證失敗后,鎖定時間間隔,s    req-get-lock-seconds: 60    # get接口一分鐘內請求數限制    req-get-minute-limit: 30    # check接口一分鐘內請求數限制    req-check-minute-limit: 60    # verify接口一分鐘內請求數限制    req-verify-minute-limit: 60

    將service/springboot/src/main/resources下的images和METE-INF文件夾copy到自己的工程里,將CaptchaCacheService文件里的內容改為自己的目錄并新建CaptchaCacheServiceRedisImpl文件作為緩存,內容如下

    package cn.yunlingfly.springbootanjicaptcha.service;import com.anji.captcha.service.CaptchaCacheService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import java.util.concurrent.TimeUnit;/** * 對于分布式部署的應用,我們建議應用自己實現CaptchaCacheService,比如用Redis,參考service/spring-boot代碼示例。 * 如果應用是單點的,也沒有使用redis,那默認使用內存。 * 內存緩存只適合單節點部署的應用,否則驗證碼生產與驗證在節點之間信息不同步,導致失敗。 * <p> * ☆☆☆ SPI: 在resources目錄新建META-INF.services文件夾(兩層),參考當前服務resources。 * <p> * 使用redis緩存 * * @author lide1202@hotmail.com * @date 2020-05-12 */public class CaptchaCacheServiceRedisImpl implements CaptchaCacheService {    @Override    public String type() {return "redis";    }    @Autowired    private StringRedisTemplate stringRedisTemplate;    @Override    public void set(String key, String value, long expiresInSeconds) {stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS);    }    @Override    public boolean exists(String key) {return stringRedisTemplate.hasKey(key);    }    @Override    public void delete(String key) {stringRedisTemplate.delete(key);    }    @Override    public String get(String key) {return stringRedisTemplate.opsForValue().get(key);    }    @Override    public Long increment(String key, long val) {return stringRedisTemplate.opsForValue().increment(key, val);    }}

    測試

    前后端分別啟動后,瀏覽器訪問http://localhost:3000/#/captcha即可看到結果

    為了方便測試,我將我前后端都上傳到Github了,代碼戳

    前端->https://github.com/Yunlingfly/vue-captcha

    后端->https://github.com/Yunlingfly/springboot-anji-captcha

    官方文檔->AJ-Captcha在線體驗

    到此這篇關于Vue滑塊驗證碼組件anji-captcha的使用的文章就介紹到這了,更多相關Vue滑塊驗證碼內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: JavaScript
    成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
    性娇小13――14欧美| 国产成人av在线影院| 久久99最新地址| 国产精品一区二区三区四区五区| 国产精品女上位| 欧美暴力喷水在线| 久久午夜羞羞影院免费观看| 国产精品久久久久久模特 | 日本一区二区三区电影| aaa欧美日韩| 日韩精品一区国产麻豆| 懂色av一区二区三区免费观看| 51午夜精品国产| 国产99精品国产| 精品三级在线看| 99久久久久免费精品国产 | 久久精品中文| 丝袜脚交一区二区| 色综合久久九月婷婷色综合| 一区二区三区免费观看| 99日韩精品| 一区二区三区在线免费观看| 亚洲福利久久| 亚洲激情校园春色| 99精品久久久| 亚洲成人激情社区| 在线一区二区三区四区| 热久久免费视频| 在线观看成人免费视频| 日本不卡视频在线观看| 欧美日韩久久一区二区| 国产一区二区在线免费观看| 555www色欧美视频| proumb性欧美在线观看| 久久奇米777| 欧美精品色网| 国产精品传媒在线| 亚洲精品在线观看免费| 亚洲午夜激情网站| 欧美亚男人的天堂| 国产伦精品一区二区三区在线观看| 欧美一级一区二区| 99re亚洲国产精品| 中文字幕一区在线观看视频| 国产精品久久久久久模特| 日日夜夜免费精品| 欧美久久久久久蜜桃| 成av人片一区二区| 欧美国产激情一区二区三区蜜月| 欧美日韩一区二区国产| 日韩一区在线看| 免费在线观看一区二区| 美女在线一区二区| 日韩欧美一级二级三级久久久| 91免费观看国产| 亚洲精选一二三| 色欧美片视频在线观看| 国产成人自拍在线| 国产精品久久综合| 另类亚洲自拍| 国产一区二区在线视频| 国产喂奶挤奶一区二区三区| 一区二区精品在线| 麻豆91精品视频| 亚洲精品在线一区二区| 亚洲国产日韩在线| 麻豆成人av在线| 国产夜色精品一区二区av| 亚洲国产午夜| 麻豆91在线播放免费| 亚洲精品在线网站| 国产精品夜夜夜| 狠狠色狠狠色综合| 国产三级一区二区三区| 香蕉成人久久| 成人网男人的天堂| 亚洲日本va午夜在线影院| 91成人免费电影| 欧美一区久久| 午夜国产不卡在线观看视频| 在线播放亚洲一区| 国内精品99| 男女男精品视频| 久久久久久久免费视频了| 免费视频一区| www.日本不卡| 午夜精品免费在线观看| 日韩欧美中文字幕一区| 亚洲另类自拍| 国产精品综合网| 日韩理论电影院| 欧美肥妇毛茸茸| 在线视频精品一区| 国产精选一区二区三区| 亚洲美女屁股眼交3| 欧美一区二区三区男人的天堂| 亚洲欧洲日夜超级视频| 国产一区二区三区电影在线观看| 国产精品青草久久| 欧美日韩精品三区| 午夜欧美视频| 久久99久久99| 一区二区三区欧美亚洲| 欧美一二三区精品| 999亚洲国产精| 成人av资源在线观看| 亚洲18女电影在线观看| 久久久久久久久一| 欧美丝袜自拍制服另类| 欧美亚州在线观看| 国产在线精品一区二区不卡了| 亚洲欧洲中文日韩久久av乱码| 日韩精品一区二区三区老鸭窝| 美女视频一区免费观看| 欧美日韩天堂| 国产99久久久久| 日韩精品亚洲专区| 自拍偷拍亚洲综合| 日韩欧美亚洲国产精品字幕久久久| 久久久久91| 在线观看视频免费一区二区三区| 国产成人精品一区二区三区四区| 日韩成人免费电影| 日韩美女视频一区| 精品国产免费久久| 在线观看欧美日本| 国产日韩欧美一区二区三区在线观看| 成人福利在线看| 日本欧美一区二区三区乱码| 国产精品国产a| 精品奇米国产一区二区三区| 欧美午夜一区二区三区 | 欧美久久久久久久久中文字幕| 亚洲综合不卡| 狠狠入ady亚洲精品| 成人激情av网| 国产综合色在线| 日日夜夜精品免费视频| 亚洲欧洲日韩av| www国产精品av| 欧美一区二区三区在线观看 | 中文字幕在线不卡国产视频| 久久久久久久综合日本| 337p亚洲精品色噜噜狠狠| 玖玖在线精品| 国产精品手机视频| 亚洲黄色av| 国产综合自拍| 91亚洲永久精品| 国产91色综合久久免费分享| 久久精品久久精品| 日韩avvvv在线播放| 亚洲综合一区二区精品导航| 国产精品乱子久久久久| 久久综合九色综合欧美亚洲| 欧美一级日韩一级| 欧美高清精品3d| 欧美久久久久免费| 在线国产电影不卡| 久久狠狠婷婷| 亚洲综合国产激情另类一区| 日韩午夜高潮| 亚洲欧洲午夜| 亚洲欧洲日本国产| 亚洲无线一线二线三线区别av| 欧美午夜影院| 国精品一区二区| 欧美人成在线| 国产精品jizz在线观看美国| 欧美精品三级| 国产精品mv在线观看| 欧美日韩免费观看一区| 欧美精品一区在线| 欧美日韩喷水| 亚洲国内自拍| 一区二区三区高清视频在线观看| 亚洲三级影院| 国产日韩一区二区三区在线播放| 一区二区久久| 美日韩免费视频| 色噜噜狠狠一区二区三区果冻| 欧洲精品视频在线观看| 欧美天堂亚洲电影院在线播放| 免费看欧美美女黄的网站| 夜夜精品视频一区二区| 欧美激情艳妇裸体舞| 久久嫩草精品久久久精品| 久久亚洲精华国产精华液| 日韩欧美高清在线| 精品91自产拍在线观看一区| 日韩免费观看高清完整版| 精品国产亚洲在线| 久久这里只有精品6| 久久精品亚洲麻豆av一区二区| 国产三级精品视频| 中文字幕日韩av资源站| 亚洲日本青草视频在线怡红院| 中文av一区特黄| 亚洲综合男人的天堂| 一区二区三区久久久|