feat: 登录功能修改

This commit is contained in:
bunny 2024-10-28 16:52:48 +08:00
parent 775deeb662
commit 183deba1b2
3 changed files with 19 additions and 6 deletions

View File

@ -30,6 +30,11 @@ public class LoginDto {
@NotNull(message = "邮箱验证码不能为空") @NotNull(message = "邮箱验证码不能为空")
private String emailCode; private String emailCode;
@Schema(name = "type", title = "登录类型")
@NotBlank(message = "登录类型不能为空")
@NotNull(message = "登录类型能为空")
private String type;
@Schema(name = "readMeDay", title = "记住我的天数") @Schema(name = "readMeDay", title = "记住我的天数")
private Long readMeDay = 1L; private Long readMeDay = 1L;
} }

View File

@ -59,12 +59,19 @@ public class TokenLoginFilterService extends UsernamePasswordAuthenticationFilte
try { try {
loginDto = objectMapper.readValue(request.getInputStream(), LoginDto.class); loginDto = objectMapper.readValue(request.getInputStream(), LoginDto.class);
// type不能为空
String type = loginDto.getType();
if (!StringUtils.hasText(type)) {
out(response, Result.error(ResultCodeEnum.REQUEST_IS_EMPTY));
return null;
}
String emailCode = loginDto.getEmailCode(); String emailCode = loginDto.getEmailCode();
String username = loginDto.getUsername(); String username = loginDto.getUsername();
String password = loginDto.getPassword(); String password = loginDto.getPassword();
// 如果有邮箱验证码表示是邮箱登录 // 如果有邮箱验证码表示是邮箱登录
if (StringUtils.hasText(emailCode)) { if (type.equals("email")) {
emailCode = emailCode.toLowerCase(); emailCode = emailCode.toLowerCase();
Object redisEmailCode = redisTemplate.opsForValue().get(RedisUserConstant.getAdminUserEmailCodePrefix(username)); Object redisEmailCode = redisTemplate.opsForValue().get(RedisUserConstant.getAdminUserEmailCodePrefix(username));
if (redisEmailCode == null) { if (redisEmailCode == null) {

View File

@ -49,7 +49,6 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security.
return new CustomUser(adminUser, AuthorityUtils.createAuthorityList()); return new CustomUser(adminUser, AuthorityUtils.createAuthorityList());
} }
/** /**
* 前台用户登录接口 * 前台用户登录接口
* *
@ -63,10 +62,12 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security.
Long readMeDay = loginDto.getReadMeDay(); Long readMeDay = loginDto.getReadMeDay();
// 查询用户相关内容 // 查询用户相关内容
LambdaQueryWrapper<AdminUser> queryWrapper = new LambdaQueryWrapper<AdminUser>() LambdaQueryWrapper<AdminUser> queryWrapper = new LambdaQueryWrapper<>();
.eq(AdminUser::getUsername, username) if (loginDto.getType().equals("email")) {
.or() queryWrapper.eq(AdminUser::getEmail, username);
.eq(AdminUser::getEmail, username); } else {
queryWrapper.eq(AdminUser::getUsername, username);
}
AdminUser user = userMapper.selectOne(queryWrapper); AdminUser user = userMapper.selectOne(queryWrapper);
// 判断用户是否为空 // 判断用户是否为空