瀏覽代碼

1、优化登录逻辑

rayson 8 月之前
父節點
當前提交
d2a3c18a80

+ 9 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java

@@ -141,12 +141,15 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         }
         if (!userService.isPasswordMatch(password, user.getPassword())) {
             createLoginLog(user.getId(), account, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
-            throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
-        }
-        if (null == user.getLoginDate()) {
-            // 第一次登录
-            throw exception(MDE_USER_PHONE_INIT_PASSWORD);
+            // 只有输错密码并且是首次才提示修改密码
+            if (null == user.getLoginDate()) {
+                // 第一次登录
+                throw exception(MDE_USER_PHONE_INIT_PASSWORD);
+            } else {
+                throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
+            }
         }
+
         // 校验是否禁用
         if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
             createLoginLog(user.getId(), account, logTypeEnum, LoginResultEnum.USER_DISABLED);
@@ -353,7 +356,7 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         smsCodeApi.useSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MENDUNER_RESET_PASSWORD,
                 getClientIP())).getCheckedData();
 
-        // 更新密码
+        // 忘记密码
         userService.updateUserPassword(user.getId(), reqVO.getPassword());
     }
 

+ 14 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthServiceImpl.java

@@ -133,16 +133,7 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
             createLoginLog(null, email, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
             throw exception(MDE_USER_EMAIL_NOT_REGISTERED);
         }
-        if (userBindService.checkNeedUpdatePassword(user.getEnterpriseId(), user.getUserId())) {
-            // 效验有没有更改过密码
-            // 没有则发送邮箱
-            MailSendSingleToUserReqDTO reqDTO = new MailSendSingleToUserReqDTO();
-            reqDTO.setMail(email);
-            reqDTO.setTemplateCode(CommonConstants.EMAIL_ENTERPRISE_INIT_PASSWORD);
-            reqDTO.setTemplateParams(MapUtil.builder("password", (Object) email).build());
-            mailSendApi.sendSingleMailToMember(reqDTO).getCheckedData();
-            throw exception(MDE_USER_EMAIL_INIT_PASSWORD);
-        }
+
         if (!userBindService.isPasswordMatch(password, user.getPassword())) {
             createLoginLog(user.getId(), email, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
@@ -151,7 +142,19 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
         // 校验是否禁用
         if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
             createLoginLog(user.getId(), email, logTypeEnum, LoginResultEnum.USER_DISABLED);
-            throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
+            // 只有输错密码并且是首次才需要发邮箱告诉密码
+            if (userBindService.checkNeedUpdatePassword(user.getEnterpriseId(), user.getUserId())) {
+                // 效验有没有更改过密码
+                // 没有则发送邮箱
+                MailSendSingleToUserReqDTO reqDTO = new MailSendSingleToUserReqDTO();
+                reqDTO.setMail(email);
+                reqDTO.setTemplateCode(CommonConstants.EMAIL_ENTERPRISE_INIT_PASSWORD);
+                reqDTO.setTemplateParams(MapUtil.builder("password", (Object) email).build());
+                mailSendApi.sendSingleMailToMember(reqDTO).getCheckedData();
+                throw exception(MDE_USER_EMAIL_INIT_PASSWORD);
+            } else {
+                throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
+            }
         }
 
         return user;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java

@@ -158,7 +158,7 @@ public interface MdeUserService {
     void updateUserPassword(Long userId, AppMdeUserUpdatePasswordReqVO reqVO);
 
     /**
-     * 修改密码
+     * 忘记密码
      *
      * @param id       用户编号
      * @param password 密码

+ 2 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java

@@ -397,6 +397,8 @@ public class MdeUserServiceImpl implements MdeUserService {
         MdeUserDO updateObj = new MdeUserDO();
         updateObj.setId(id);
         updateObj.setPassword(encodePassword(password)); // 加密密码
+        updateObj.setLoginDate(LocalDateTime.now());
+        updateObj.setLoginIp(getClientIP());
         mdeUserMapper.updateById(updateObj);
 
         // 3. 记录操作日志上下文