feat: 登录功能修改
This commit is contained in:
parent
775deeb662
commit
183deba1b2
|
@ -30,6 +30,11 @@ public class LoginDto {
|
|||
@NotNull(message = "邮箱验证码不能为空")
|
||||
private String emailCode;
|
||||
|
||||
@Schema(name = "type", title = "登录类型")
|
||||
@NotBlank(message = "登录类型不能为空")
|
||||
@NotNull(message = "登录类型能为空")
|
||||
private String type;
|
||||
|
||||
@Schema(name = "readMeDay", title = "记住我的天数")
|
||||
private Long readMeDay = 1L;
|
||||
}
|
||||
|
|
|
@ -59,12 +59,19 @@ public class TokenLoginFilterService extends UsernamePasswordAuthenticationFilte
|
|||
try {
|
||||
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 username = loginDto.getUsername();
|
||||
String password = loginDto.getPassword();
|
||||
|
||||
// 如果有邮箱验证码,表示是邮箱登录
|
||||
if (StringUtils.hasText(emailCode)) {
|
||||
if (type.equals("email")) {
|
||||
emailCode = emailCode.toLowerCase();
|
||||
Object redisEmailCode = redisTemplate.opsForValue().get(RedisUserConstant.getAdminUserEmailCodePrefix(username));
|
||||
if (redisEmailCode == null) {
|
||||
|
|
|
@ -49,7 +49,6 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security.
|
|||
return new CustomUser(adminUser, AuthorityUtils.createAuthorityList());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 前台用户登录接口
|
||||
*
|
||||
|
@ -63,10 +62,12 @@ public class CustomUserDetailsServiceImpl implements cn.bunny.services.security.
|
|||
Long readMeDay = loginDto.getReadMeDay();
|
||||
|
||||
// 查询用户相关内容
|
||||
LambdaQueryWrapper<AdminUser> queryWrapper = new LambdaQueryWrapper<AdminUser>()
|
||||
.eq(AdminUser::getUsername, username)
|
||||
.or()
|
||||
.eq(AdminUser::getEmail, username);
|
||||
LambdaQueryWrapper<AdminUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (loginDto.getType().equals("email")) {
|
||||
queryWrapper.eq(AdminUser::getEmail, username);
|
||||
} else {
|
||||
queryWrapper.eq(AdminUser::getUsername, username);
|
||||
}
|
||||
AdminUser user = userMapper.selectOne(queryWrapper);
|
||||
|
||||
// 判断用户是否为空
|
||||
|
|
Loading…
Reference in New Issue