Browse Source

将图片验证码存在Redis中

wangmh 7 years ago
parent
commit
c97b92876b

+ 8 - 1
sso-server/src/main/java/com/uas/sso/controller/PersonalRegisterController.java

@@ -221,7 +221,14 @@ public class PersonalRegisterController extends BaseController {
         }
 
         // 校验图片验证码
-        CaptchaUtil.checkCode(request, RESET_CAPTCHA, code);
+        Token captchaToken = tokenService.findOne(request.getSession().getId());
+        if (captchaToken == null) {
+            return error("图片验证码过期");
+        }
+        if (code != null && !code.equalsIgnoreCase((String) captchaToken.getBind())) {
+            return error("请输入正确的验证码");
+        }
+        tokenService.delete(request.getSession().getId());
 
         // 获取验证码
         String token = getMobileToken(mobile);

+ 3 - 0
sso-server/src/main/java/com/uas/sso/controller/ResetPasswordController.java

@@ -94,6 +94,9 @@ public class ResetPasswordController extends BaseController {
         try {
             // 获取验证码
             CaptchaUtil.outputCaptcha(request, response, RESET_CAPTCHA);
+            String code = (String) request.getSession().getAttribute(RESET_CAPTCHA);
+            Token token = new Token(request.getSession().getId(), code, 5 * 60);
+            tokenService.save(token);
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 8 - 1
sso-server/src/main/java/com/uas/sso/controller/UserspaceRegisterController.java

@@ -243,7 +243,14 @@ public class UserspaceRegisterController extends BaseController {
         }
 
         // 校验图片验证码
-        CaptchaUtil.checkCode(request, RESET_CAPTCHA, code);
+        Token captchaToken = tokenService.findOne(request.getSession().getId());
+        if (captchaToken == null) {
+            return error("图片验证码过期");
+        }
+        if (code != null && !code.equalsIgnoreCase((String) captchaToken.getBind())) {
+            return error("请输入正确的验证码");
+        }
+        tokenService.delete(request.getSession().getId());
 
         // 校验手机号
         checkMobile(mobile, mobileArea);