Browse Source

密码重置

huangqizheng/feature-20250714180618-数据同步
sunjiabei 1 month ago
parent
commit
ea99e40db5
  1. 2
      src/main/java/com/example/demo/service/AdminService.java
  2. 38
      src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

2
src/main/java/com/example/demo/service/AdminService.java

@ -18,4 +18,6 @@ public interface AdminService {
String getId(String account);
Result updatePassword(Password password);
Result resetPassword(Password password);
}

38
src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

@ -137,4 +137,42 @@ public class AdminServiceImpl implements AdminService {
return Result.error("密码更新失败");
}
}
@Override
public Result resetPassword(Password password) {
String newPassword = password.getNewPassword();
if(newPassword == null ||password.getAccount() == null) {
return Result.error("输入不能为空");
}
// 检查新密码是否符合复杂度要求
if (!PASSWORD_PATTERN.matcher(newPassword).matches()) {
return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种");
}
if(adminMapper.getAdmin(password.getAccount())==null)
{
return Result.error("用户不存在");
}
try {
// 获取认证后的用户信息
Admin admin = adminMapper.getAdmin(password.getAccount());
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// 使用Spring管理的密码编码器不要手动new
String encodedPassword = passwordEncoder.encode(newPassword);
// 更新数据库中的密码
admin.setPassword(encodedPassword);
admin.setUpdateTime(new Date()); // 更新修改时间
adminMapper.updatePassword(admin);
return Result.success("密码重置成功");
}
catch (Exception e) {
return Result.error("密码重置失败");
}
}
}
Loading…
Cancel
Save