Ruoyi 框架邮箱验证码发送 Controller 代码示例
以下是基于 Ruoyi 框架的邮箱验证码发送的 Controller 层代码示例:
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private JavaMailSender mailSender; // 邮件发送器
@PostMapping("/sendCode")
public R sendCode(@RequestParam String email) {
// 生成6位随机验证码
String code = RandomStringUtils.randomNumeric(6);
// 发送邮件
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("yourEmail@qq.com"); // 发件人邮箱
message.setTo(email); // 收件人邮箱
message.setSubject('验证码'); // 邮件主题
message.setText('您的验证码为:' + code); // 邮件内容
mailSender.send(message); // 发送邮件
// 将验证码存入缓存中,以便后续校验
// TODO: 将验证码存入缓存中
} catch (Exception e) {
return R.error("邮件发送失败!");
}
return R.ok("验证码发送成功");
}
@PostMapping("/verifyCode")
public R verifyCode(@RequestParam String email, @RequestParam String code) {
// 从缓存中获取验证码
// TODO: 从缓存中获取验证码
String cachedCode = '123456';
if (StringUtils.equals(cachedCode, code)) {
return R.ok("验证码正确");
} else {
return R.error("验证码错误");
}
}
}
上述代码中,sendCode() 方法用于发送验证码邮件,接收一个邮箱地址作为参数,生成 6 位随机数字作为验证码,发送邮件后将验证码存入缓存中。verifyCode() 方法用于校验验证码是否正确,接收一个邮箱地址和验证码作为参数,从缓存中获取验证码进行比对,返回校验结果。
注意:上述代码仅为示例,具体实现需要根据具体业务需求进行调整。另外,缓存的实现可以使用 redis 等第三方缓存库,也可以使用 Spring 自带的缓存注解来实现。
原文地址: https://www.cveoy.top/t/topic/mSJq 著作权归作者所有。请勿转载和采集!