Преглед изворни кода

添加控制用户发送验证码频率

wangmh пре 7 година
родитељ
комит
297c419e5c

+ 11 - 0
sso-server/src/main/java/com/uas/sso/controller/PersonalRegisterController.java

@@ -230,9 +230,20 @@ public class PersonalRegisterController extends BaseController {
         }
         tokenService.delete(request.getSession().getId());
 
+        // 校验发送短信频率,60秒一次,key为#{sessionId}_#{类名}
+        String key = request.getSession().getId() + "_" + this.getClass().getSimpleName();
+        Token rateToken = tokenService.findOne(key);
+        if (rateToken != null) {
+            return error("验证码发送间隔过快");
+        }
+
         // 获取验证码
         String token = getMobileToken(mobile);
 
+        // 设置发送短信频率
+        rateToken = new Token(key, "", 60);
+        tokenService.save(rateToken);
+
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);

+ 11 - 0
sso-server/src/main/java/com/uas/sso/controller/UserspaceRegisterController.java

@@ -252,12 +252,23 @@ public class UserspaceRegisterController extends BaseController {
         }
         tokenService.delete(request.getSession().getId());
 
+        // 校验发送短信频率,60秒一次,key为#{sessionId}_#{类名}
+        String key = request.getSession().getId() + "_" + this.getClass().getSimpleName();
+        Token rateToken = tokenService.findOne(key);
+        if (rateToken != null) {
+            return error("验证码发送间隔过快");
+        }
+
         // 校验手机号
         checkMobile(mobile, mobileArea);
 
         // 获取验证码
         String token = getMobileToken(mobile);
 
+        // 设置发送短信频率
+        rateToken = new Token(key, "", 60);
+        tokenService.save(rateToken);
+
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);