瀏覽代碼

完善验证码接口(controller)

superb 1 年之前
父節點
當前提交
7f90d02499
共有 43 個文件被更改,包括 94 次插入4 次删除
  1. 5 0
      controller/pom.xml
  2. 70 4
      controller/src/main/java/com/koobietech/eas/controller/AdminLoginController.java
  3. 19 0
      controller/src/main/resources/application.yaml
  4. 二進制
      controller/src/main/resources/images/jigsaw/bg1.png
  5. 二進制
      controller/src/main/resources/images/jigsaw/bg10.png
  6. 二進制
      controller/src/main/resources/images/jigsaw/bg11.png
  7. 二進制
      controller/src/main/resources/images/jigsaw/bg12.png
  8. 二進制
      controller/src/main/resources/images/jigsaw/bg13.png
  9. 二進制
      controller/src/main/resources/images/jigsaw/bg14.png
  10. 二進制
      controller/src/main/resources/images/jigsaw/bg15.png
  11. 二進制
      controller/src/main/resources/images/jigsaw/bg16.png
  12. 二進制
      controller/src/main/resources/images/jigsaw/bg17.png
  13. 二進制
      controller/src/main/resources/images/jigsaw/bg18.png
  14. 二進制
      controller/src/main/resources/images/jigsaw/bg19.png
  15. 二進制
      controller/src/main/resources/images/jigsaw/bg2.png
  16. 二進制
      controller/src/main/resources/images/jigsaw/bg20.png
  17. 二進制
      controller/src/main/resources/images/jigsaw/bg3.png
  18. 二進制
      controller/src/main/resources/images/jigsaw/bg4.png
  19. 二進制
      controller/src/main/resources/images/jigsaw/bg5.png
  20. 二進制
      controller/src/main/resources/images/jigsaw/bg6.png
  21. 二進制
      controller/src/main/resources/images/jigsaw/bg7.png
  22. 二進制
      controller/src/main/resources/images/jigsaw/bg8.png
  23. 二進制
      controller/src/main/resources/images/jigsaw/bg9.png
  24. 二進制
      controller/src/main/resources/images/pic-click/bg1.png
  25. 二進制
      controller/src/main/resources/images/pic-click/bg10.png
  26. 二進制
      controller/src/main/resources/images/pic-click/bg11.png
  27. 二進制
      controller/src/main/resources/images/pic-click/bg12.png
  28. 二進制
      controller/src/main/resources/images/pic-click/bg13.png
  29. 二進制
      controller/src/main/resources/images/pic-click/bg14.png
  30. 二進制
      controller/src/main/resources/images/pic-click/bg15.png
  31. 二進制
      controller/src/main/resources/images/pic-click/bg16.png
  32. 二進制
      controller/src/main/resources/images/pic-click/bg17.png
  33. 二進制
      controller/src/main/resources/images/pic-click/bg18.png
  34. 二進制
      controller/src/main/resources/images/pic-click/bg19.png
  35. 二進制
      controller/src/main/resources/images/pic-click/bg2.png
  36. 二進制
      controller/src/main/resources/images/pic-click/bg20.png
  37. 二進制
      controller/src/main/resources/images/pic-click/bg3.png
  38. 二進制
      controller/src/main/resources/images/pic-click/bg4.png
  39. 二進制
      controller/src/main/resources/images/pic-click/bg5.png
  40. 二進制
      controller/src/main/resources/images/pic-click/bg6.png
  41. 二進制
      controller/src/main/resources/images/pic-click/bg7.png
  42. 二進制
      controller/src/main/resources/images/pic-click/bg8.png
  43. 二進制
      controller/src/main/resources/images/pic-click/bg9.png

+ 5 - 0
controller/pom.xml

@@ -14,6 +14,11 @@
     </parent>
 
     <dependencies>
+        <dependency>
+            <groupId>com.anji-plus</groupId>
+            <artifactId>spring-boot-starter-captcha</artifactId>
+            <version>1.3.0</version>
+        </dependency>
         <dependency>
             <groupId>cn.afterturn</groupId>
             <artifactId>easypoi-spring-boot-starter</artifactId>

+ 70 - 4
controller/src/main/java/com/koobietech/eas/controller/AdminLoginController.java

@@ -1,7 +1,10 @@
 package com.koobietech.eas.controller;
 
 
-import com.koobietech.eas.common.pojo.JwtUserDto;
+import com.anji.captcha.model.common.ResponseModel;
+import com.anji.captcha.model.vo.CaptchaVO;
+import com.anji.captcha.service.CaptchaService;
+import com.koobietech.eas.common.exception.EasException;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.dao.Pojo.AdminPojo;
 import com.koobietech.eas.dao.dto.LoginToken;
@@ -18,10 +21,13 @@ public class AdminLoginController {
     @Resource
     private AdminLoginService adminLoginService;
 
+    @Resource
+    private CaptchaService captchaService;
+
 
     @RequestMapping("/adminLogin")
-    @Operation(summary = "管理员登录",  description = "用户名和密码为请求载荷,若登录成功,返回两token")
-    public JsonResult adminLogin(@RequestBody AdminPojo adminPojo){
+    @Operation(summary = "管理员登录", description = "用户名和密码为请求载荷,若登录成功,返回两token")
+    public JsonResult adminLogin(@RequestBody AdminPojo adminPojo) {
 
         LoginToken result = adminLoginService.adminLogin(adminPojo);
 
@@ -29,11 +35,71 @@ public class AdminLoginController {
     }
 
     @PostMapping("/refreshToken")
-    @Operation(summary = "刷新token",  description = "当token过期,在请求头中携带refresh token,若刷新成功,返回新的token和refresh token")
+    @Operation(summary = "刷新token", description = "当token过期,在请求头中携带refresh token,若刷新成功,返回新的token和refresh token")
     public JsonResult refreshToken(@RequestHeader("Authorization") String refreshToken) {
         // 返回新的token和refresh token
         return JsonResult.data(adminLoginService.refreshToken(refreshToken));
     }
 
+    @PostMapping("/verify.get")
+    @Operation(summary = "获取验证码", description = "前端发起获取验证码请求,后端访问静态资源返回滑动图片")
+    public ResponseModel get(@RequestBody CaptchaVO captchaVO) {
+        return captchaService.get(captchaVO);
+    }
+
+    @PostMapping("/verify.check")
+    @Operation(summary = "核对验证码轨迹", description = "前端把用户的滑动轨迹转化成字符串传入后端,通过算法判断轨迹是否为真人")
+    public ResponseModel check(@RequestBody CaptchaVO captchaVO) {
+        return captchaService.check(captchaVO);
+    }
+
+    @PostMapping("/verify.judge")
+    @Operation(summary = "二次校验验证码", description = "校验滑动验证码结果,是否匹配上,传参:captchaVerification")
+    public ResponseModel verify(@RequestBody CaptchaVO captchaVO) {
+        ResponseModel response = captchaService.verification(captchaVO);
+        //repCode  0000  无异常,代表成功
+        //repCode  9999  服务器内部异常
+        //repCode  0011  参数不能为空
+        //repCode  6110  验证码已失效,请重新获取
+        //repCode  6111  验证失败
+        //repCode  6112  获取验证码失败,请联系管理员
+        //repCode  6113  底图未初始化成功,请检查路径
+        //repCode  6201  get接口请求次数超限,请稍后再试!
+        //repCode  6206  无效请求,请重新获取验证码
+        //repCode  6202  接口验证失败数过多,请稍后再试
+        //repCode  6204  check接口请求次数超限,请稍后再试!
+        if (!response.isSuccess()) {
+            String repCode = response.getRepCode();
+            switch (repCode) {
+                case "9999":
+                    throw new EasException("服务器内部异常", 9999);
+                case "0011":
+                    throw new EasException("参数不能为空", 0011);
+                case "6110":
+                    throw new EasException("验证码已失效,请重新获取", 6110);
+                case "6111":
+                    throw new EasException("验证失败", 6111);
+                case "6112":
+                    throw new EasException("获取验证码失败,请联系管理员", 6112);
+                case "6113":
+                    throw new EasException("底图未初始化成功,请检查路径", 6113);
+                case "6201":
+                    throw new EasException("get接口请求次数超限,请稍后再试!", 6201);
+                case "6206":
+                    throw new EasException("无效请求,请重新获取验证码", 6206);
+                case "6202":
+                    throw new EasException("接口验证失败数过多,请稍后再试", 6202);
+                case "6204":
+                    throw new EasException("check接口请求次数超限,请稍后再试!", 6204);
+                default:
+                    // 处理未知的 repCode
+                    throw new EasException("未知错误,你干嘛~哎哟~", -1);
+            }
+        }
+
+        return response;
+    }
+
+
 
 }

+ 19 - 0
controller/src/main/resources/application.yaml

@@ -34,3 +34,22 @@ eas:
   jwt-secret-key: 123456
   jwt-expires-date: 1
   password-sign-key: eas-key-password
+aj:
+  captcha:
+    jigsaw: classpath:images/jigsaw
+    pic-click: classpath:images/pic-click
+    cache-type: local
+    type: default
+    water-mark: "\u6211\u7684\u6c34\u5370"
+    slip-offset: 5
+    aes-status: true
+    interference-options: 2
+    font-style: 1
+    font-size: 25
+    history-data-clear-enable: false
+    req-frequency-limit-enable: false
+    req-get-lock-limit: 5
+    req-get-lock-seconds: 360
+    req-get-minute-limit: 30
+    req-check-minute-limit: 60
+    req-verify-minute-limit: 60

二進制
controller/src/main/resources/images/jigsaw/bg1.png


二進制
controller/src/main/resources/images/jigsaw/bg10.png


二進制
controller/src/main/resources/images/jigsaw/bg11.png


二進制
controller/src/main/resources/images/jigsaw/bg12.png


二進制
controller/src/main/resources/images/jigsaw/bg13.png


二進制
controller/src/main/resources/images/jigsaw/bg14.png


二進制
controller/src/main/resources/images/jigsaw/bg15.png


二進制
controller/src/main/resources/images/jigsaw/bg16.png


二進制
controller/src/main/resources/images/jigsaw/bg17.png


二進制
controller/src/main/resources/images/jigsaw/bg18.png


二進制
controller/src/main/resources/images/jigsaw/bg19.png


二進制
controller/src/main/resources/images/jigsaw/bg2.png


二進制
controller/src/main/resources/images/jigsaw/bg20.png


二進制
controller/src/main/resources/images/jigsaw/bg3.png


二進制
controller/src/main/resources/images/jigsaw/bg4.png


二進制
controller/src/main/resources/images/jigsaw/bg5.png


二進制
controller/src/main/resources/images/jigsaw/bg6.png


二進制
controller/src/main/resources/images/jigsaw/bg7.png


二進制
controller/src/main/resources/images/jigsaw/bg8.png


二進制
controller/src/main/resources/images/jigsaw/bg9.png


二進制
controller/src/main/resources/images/pic-click/bg1.png


二進制
controller/src/main/resources/images/pic-click/bg10.png


二進制
controller/src/main/resources/images/pic-click/bg11.png


二進制
controller/src/main/resources/images/pic-click/bg12.png


二進制
controller/src/main/resources/images/pic-click/bg13.png


二進制
controller/src/main/resources/images/pic-click/bg14.png


二進制
controller/src/main/resources/images/pic-click/bg15.png


二進制
controller/src/main/resources/images/pic-click/bg16.png


二進制
controller/src/main/resources/images/pic-click/bg17.png


二進制
controller/src/main/resources/images/pic-click/bg18.png


二進制
controller/src/main/resources/images/pic-click/bg19.png


二進制
controller/src/main/resources/images/pic-click/bg2.png


二進制
controller/src/main/resources/images/pic-click/bg20.png


二進制
controller/src/main/resources/images/pic-click/bg3.png


二進制
controller/src/main/resources/images/pic-click/bg4.png


二進制
controller/src/main/resources/images/pic-click/bg5.png


二進制
controller/src/main/resources/images/pic-click/bg6.png


二進制
controller/src/main/resources/images/pic-click/bg7.png


二進制
controller/src/main/resources/images/pic-click/bg8.png


二進制
controller/src/main/resources/images/pic-click/bg9.png