Przeglądaj źródła

增加用户名,密码,验证码校验

david 2 lat temu
rodzic
commit
45ff5ae37d

+ 4 - 1
src/main/java/com/roma/romaapi/config/InterceptorConfig.java

@@ -22,6 +22,9 @@ public class InterceptorConfig implements WebMvcConfigurer {
                 //拦截的路径
                 .addPathPatterns("/**")
                 //排除登录接口
-                .excludePathPatterns("/login/verifyCode","/api/login");
+                .excludePathPatterns("/login/verifyCode")
+                .excludePathPatterns("/api/login")
+                .excludePathPatterns("/error")
+        ;
     }
 }

+ 3 - 5
src/main/java/com/roma/romaapi/controller/ApiController.java

@@ -43,11 +43,9 @@ public class ApiController {
     @RequestMapping("/api/login")
     public Map login(HttpServletRequest request){
         Map<String, String[]> maps = request.getParameterMap();
-        apiService.login(maps);
-        Map ret = new HashMap();
-        String key = uuidUtil.getUUID32();
-        ret.put("token", key);
-        return CustomResponse.formatResponse(ret);
+        Map<String, Object> loginResult = apiService.login(maps);
+
+        return CustomResponse.formatResponse(loginResult);
 //        //生成验证码对应的token  以token为key  验证码为value存在redis中
 //        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
 //        valueOperations.set(key, key);

+ 16 - 6
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -30,22 +31,31 @@ public class ApiService {
         String captcha = maps.get("api_captcha")[0]; // 用户输入验证码
         String captchaToken = maps.get("captchaToken")[0]; // 验证码token,获取验证码的值
         String captchaTokenValue = redisTemplate.opsForValue().get(captchaToken); // 缓存中验证码的值
-        if(!Boolean.TRUE.equals(redisTemplate.hasKey(captchaToken)) || captchaTokenValue!=captcha){
-            // 验证码验证失败
+        Map<String, Object> loginResult = new HashMap<>();
+        if(!Boolean.TRUE.equals(redisTemplate.hasKey(captchaToken)) || !Objects.equals(captchaTokenValue, captcha)){
+            loginResult.put("sysErrorCode", "500");
+            loginResult.put("sysErrorMessage", "验证码错误");
+
+            return loginResult;
         }
 //        String aa = securityUtils.encodePassword(password); // 加密密码
         // 判断是否存在此用户,用户密码是否正确
-        Map UserInfo = apiDao.adminInfoQueryForMap(userName);
+        Map<String, Object> UserInfo = apiDao.adminInfoQueryForMap(userName);
         if(UserInfo.containsKey("sysErrorCode")) {
-            // 如果没查到用户信息,则报错
-            return UserInfo;
+            loginResult.put("sysErrorCode", "500");
+            loginResult.put("sysErrorMessage", "账号或密码错误");
+
+            return loginResult;
         }
         Object adminPassword = UserInfo.get("admin_password");
         String stringAdminPassword = adminPassword.toString();
         // 校验密码是否正确
         if(!securityUtils.matchesPassword(password,stringAdminPassword)) {
             // 校验密码是否正确 密码不正确,返回错误
-            System.out.println("密码校验错误");
+            loginResult.put("sysErrorCode", "500");
+            loginResult.put("sysErrorMessage", "账号或密码错误");
+
+            return loginResult;
         }
 
         // 通过密码,验证码校验,发放token

+ 1 - 1
src/main/resources/application.properties

@@ -1 +1 @@
-#服务
server.port=8081
server.servlet.session.timeout=600

#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://172.24.48.17:3306/lowcode?serverTimezone=UTC&tinyInt1isBit=false&transformedBitIsBoolean=false
spring.datasource.username = root
spring.datasource.password = mypass

#redis
spring.redis.database=0
spring.redis.password=
#spring.redis.password=name:password
spring.redis.port=6379
spring.redis.host=172.24.48.17
spring.redis.timeout=5000
spring.redis.lettuce.pool.max-active=3
spring.redis.lettuce.pool.min-idle=2
spring.redis.lettuce.pool.max-idle=3
spring.redis.lettuce.pool.max-wait=-1
#spring.redis.lettuce.shutdown-timeout=100
#spring.cache.redis.cache-null-values=false


+#服务
server.port=8081
server.servlet.session.timeout=600

#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://172.28.179.23:3306/lowcode?serverTimezone=UTC&tinyInt1isBit=false&transformedBitIsBoolean=false
spring.datasource.username = root
spring.datasource.password = mypass

#redis
spring.redis.database=0
spring.redis.password=
#spring.redis.password=name:password
spring.redis.port=6379
spring.redis.host=172.28.179.23
spring.redis.timeout=5000
spring.redis.lettuce.pool.max-active=3
spring.redis.lettuce.pool.min-idle=2
spring.redis.lettuce.pool.max-idle=3
spring.redis.lettuce.pool.max-wait=-1
#spring.redis.lettuce.shutdown-timeout=100
#spring.cache.redis.cache-null-values=false