| | |
| | | import com.ruoyi.common.annotation.Anonymous; |
| | | import com.ruoyi.framework.web.domain.server.Sys; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.impl.EmailService; |
| | | import com.ruoyi.system.service.impl.VerificationCodeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.ruoyi.common.constant.Constants; |
| | |
| | | |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | |
| | | @Autowired |
| | | private EmailService emailService; |
| | | |
| | | @Autowired |
| | | private VerificationCodeService codeService; |
| | | |
| | | /** |
| | | * 登录方法 |
| | |
| | | System.out.println(menus); |
| | | return AjaxResult.success(menuService.buildMenus(menus));//这里之后就封装好了发给前端的vo |
| | | } |
| | | |
| | | // 步骤1:请求发送验证码 |
| | | @PostMapping("/getCode") |
| | | public AjaxResult requestPasswordReset(@RequestBody SysUser sysUser) { |
| | | // 验证账号和邮箱是否匹配 |
| | | SysUser user = userService.checkEmail(sysUser.getNickName(),sysUser.getEmail()); |
| | | if (user == null) { |
| | | return AjaxResult.error("账号或邮箱不匹配"); |
| | | } |
| | | |
| | | // 生成并发送验证码 |
| | | String verificationCode = codeService.generateCode(); |
| | | codeService.saveCode(sysUser.getNickName(), verificationCode); |
| | | emailService.sendVerificationCode(sysUser.getEmail(), verificationCode); |
| | | |
| | | return AjaxResult.success("验证码已发送至您的邮箱"); |
| | | } |
| | | |
| | | // 步骤2:验证验证码并重置密码 |
| | | @PostMapping("/reset") |
| | | public AjaxResult resetPassword(@RequestParam String nickName, |
| | | @RequestParam String verificationCode, |
| | | @RequestParam String newPassword) { |
| | | // 验证验证码 |
| | | if (!codeService.validateCode(nickName, verificationCode)) { |
| | | return AjaxResult.error("验证码无效或已过期"); |
| | | } |
| | | |
| | | // 更新密码 |
| | | SysUser user = userService.selectUserByNickName(nickName); |
| | | System.out.println(user); |
| | | if (user != null) { |
| | | newPassword = SecurityUtils.encryptPassword(newPassword); |
| | | user.setPassword(newPassword); |
| | | userService.updateUser(user);// 实际应用中应对密码加密 |
| | | return AjaxResult.success("密码重置成功"); |
| | | } |
| | | return AjaxResult.error("用户不存在"); |
| | | } |
| | | |
| | | } |