成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

驗證碼這樣做,瞬間高出一個逼格

開發 前端
拖動式驗證就是根據圖片顯示,將指定的圖形拖動到指定位置完成驗證。而點觸式驗證碼就是通過鼠標點擊出示例中出現的圖形完成驗證。

[[416746]]

前言

行為驗證碼通過用戶的操作來完成驗證,常見的行為驗證碼有拖動式和點觸式。

拖動式驗證就是根據圖片顯示,將指定的圖形拖動到指定位置完成驗證。而點觸式驗證碼就是通過鼠標點擊出示例中出現的圖形完成驗證。

行為驗證碼應用

今天推薦一款非常優秀的行為驗證碼AJ-Captcha(項目地址https://gitee.com/anji-plus/captcha),這個項目包含了滑動拼圖和文字點選兩種類型的驗證碼,除了嵌入式交互,還提供了彈出式交互的方式,完全不影響原UI布局。

AJ-Captcha的驗證流程如下:

  1. 用戶訪問登錄頁面,發送請求顯示行為驗證碼
  2. 用戶按照提示要求完成驗證碼拼圖/點擊
  3. 用戶提交表單,前端將第二步的輸出一同提交到后臺
  4. 驗證數據隨表單提交到后臺后,后臺需要調用captchaService.verification做二次校驗。
  5. 第4步返回校驗通過/失敗到產品應用后端,再返回到前端。如下圖所示。

如果你是Maven開發者,使用起來非常方便,項目的維護人員已經將依賴推送至中央倉庫。只需要引入依賴就完成了90%的工作量。接下來只需要在登錄接口中進行二次驗證就可以了。

項目集成了包括html、vue、flutter、uni-app、Android Kotlin、IOS、php等多種前端語言,可以輕松將AJ_Captcha集成到項目中。

接下來我們以Spring Boot+html為例看看如何快速集成AJ_Captcha完成行為驗證碼的交互流程。

第一步、Spring Boot中引入AJ_Captcha依賴

  1. <dependency> 
  2.     <groupId>com.anji-plus</groupId> 
  3.     <artifactId>spring-boot-starter-captcha</artifactId> 
  4.     <version>1.2.9</version> 
  5. </dependency> 

 

AJ_Captcha默認實現了驗證碼生成和驗證接口,驗證碼生成接口的默認請求地址是/captcha/get,驗證接口的默認請求地址為/captcha/check。也就是說完成以上步驟,就可以提供給前端獲取和驗證驗證碼的接口了。如果你還想讓你的驗證碼生成的個性一點,可以配置以下屬性:

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

第二步、前端偽代碼調用接口

1.引入驗證碼的樣式以及驗證等文件

2.驗證碼獲取及驗證

  1. <script> 
  2.     $('#content').slideVerify({ 
  3.     baseUrl:'http://localhost:8080/',  //服務器請求地址, 默認地址為安吉服務器; 
  4.     containerId:'btn',//pop模式 必填 被點擊之后出現行為驗證碼的元素id 
  5.     mode:'pop',     //展示模式 
  6.     imgSize : {       //圖片的大小對象,有默認值{ width: '310px',height: '155px'},可省略 
  7.         width: '400px'
  8.         height: '200px'
  9.     }, 
  10.     barSize:{          //下方滑塊的大小對象,有默認值{ width: '310px',height: '50px'},可省略 
  11.         width: '400px'
  12.         height: '40px'
  13.     }, 
  14.     beforeCheck:function(){  //檢驗參數合法性的函數  mode ="pop"有效 
  15.         let flag = true
  16.         //實現: 參數合法性的判斷邏輯, 返回一個boolean值 
  17.         return flag 
  18.     }, 
  19.     ready : function() {},  //加載完畢的回調 
  20.     success : function(params) { //成功的回調 
  21.         // params為返回的二次驗證參數 需要在接下來的實現邏輯回傳服務器 
  22.         例如: login($.extend({}, params)) 
  23.     }, 
  24.     error : function() {}        //失敗的回調 
  25. }); 
  26. </script> 

驗證碼驗證成功之后,會返回一個用于二次驗證的串碼。

第三步,用戶登錄,二次驗證

客戶端登錄的時候攜帶驗證成功后返回的串碼,在登錄接口中進行二次驗證,驗證流程完畢。

  1. @Autowired 
  2. private CaptchaService captchaService; 
  3.  
  4. @PostMapping("login"
  5. public ResultBean login(@RequestBody LoginUser user,String captchaVerification){ 
  6.     ResultBean resultBean = new ResultBean(); 
  7.     CaptchaVO captchaVO = new CaptchaVO(); 
  8.     captchaVO.setCaptchaVerification(captchaVerification); 
  9.     ResponseModel responseModel = captchaService.verification(captchaVO); 
  10.     if(!responseModel.isSuccess()){ 
  11.         resultBean.fillCode(0,responseModel.getRepMsg()); 
  12.         return resultBean; 
  13.     } 
  14.     // 驗證通過后,繼續登錄流程 

 今天的內容就介紹到這里了,趁這個機會,試著使用這款高顏值的行為驗證碼來替換項目中的圖形驗證碼吧。

本文轉載自微信公眾號「Java旅途」,可以通過以下二維碼關注。轉載本文請聯系Java旅途公眾號。

 

責任編輯:武曉燕 來源: Java旅途
相關推薦

2021-09-27 10:03:55

裝飾器代碼

2021-07-12 07:08:54

責任鏈模式對象

2024-12-02 10:15:15

2021-04-15 07:32:02

java 代碼Stream

2020-01-06 13:11:30

技術工具

2020-12-20 10:07:57

Canvas圖形驗證碼javascript

2013-06-19 10:19:59

2024-07-30 08:59:22

2023-09-22 11:51:13

PythonFlask

2020-11-16 07:28:53

驗證碼

2009-02-09 14:17:36

2009-08-11 14:05:28

JSP驗證碼

2016-11-17 12:49:36

云運維銀行卡建設

2015-03-23 17:58:04

驗證碼倒計時并行

2022-02-11 07:10:15

驗證碼

2015-09-21 15:31:05

php實現驗證碼

2017-12-21 07:38:19

2021-01-19 10:29:34

短信驗證碼密碼

2015-03-17 09:28:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品在线免费 | 中文字幕视频一区二区 | 日韩高清国产一区在线 | 国产无人区一区二区三区 | 在线欧美一区二区 | 电影在线 | 国产精品1区2区3区 一区中文字幕 | 精品国产一区二区三区日日嗨 | 五月天激情电影 | 欧美一区二区小视频 | 天天躁日日躁狠狠躁白人 | 久久精品99| 日韩视频专区 | 看av网| 九九视频网 | 成人免费淫片aa视频免费 | 国产又爽又黄的视频 | 亚洲精品中文字幕 | 欧美aaa级 | 高清国产午夜精品久久久久久 | 国产日韩欧美一区二区 | 国产精品久久久久无码av | 国产免费一区二区三区网站免费 | 中文字幕在线第二页 | 久久久影院 | 麻豆久久久9性大片 | 精品视频在线观看 | 91精品久久久久久久久久 | 中文字幕在线观看一区 | 中文字幕乱码一区二区三区 | 一区二区欧美在线 | 综合久久99 | 日韩伦理一区二区 | 国产精品亚洲精品 | 亚洲444eee在线观看 | 亚洲91av| 成人综合一区 | 成人精品一区二区三区中文字幕 | 香蕉久久网 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 狠狠操电影|