用户注册、找回密码的邮箱验证码存入redis,三,三
springboot用户注册、找回密码的邮箱验证码存入
分钟有效
分钟有效
首先配置redis,笔者使用
1.首先配置
,笔者使用stringRedisTemplate
可以查看我的上一篇博客,springboot配置stringRedisTemplate
2.用户注册和找回密码都是通过邮箱来实现的
用户注册和找回密码都是通过邮箱来实现的
所以要配置邮箱可以正常发送邮件,详情清看:SpringBoot使用JavaMailSender发送邮件
3.使用随机数生成四位随机数,当作验证码,并且设置失效时间为三分钟,
使用随机数生成四位随机数,当作验证码,并且设置失效时间为三分钟,
String emailReg = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
Pattern pattern = Pattern.compile(emailReg);
Matcher matcher = pattern.matcher(email);
if(matcher.find()){ //验证邮箱格式是否正确
String code = String.valueOf((int)((Math.random()*9+1)*1000)); //四位随机数验证码
//向redis里存入数据和设置缓存时间
redisTemplate.opsForValue().set(email, code, 60 * 3, TimeUnit.SECONDS);
try {
emailService.sendEmail("123456***@163.com",email,"验证码",code);
data.put("code","success");
data.put("msg","验证码发送成功,三分钟有效,请注意查收!");
} catch (Exception e) {
e.printStackTrace();
data.put("code","error");
data.put("msg","无法发送邮件,请稍后重试!");
}
}else {
data.put("code","error");
data.put("msg","邮箱格式不正确!");
}
作者:hahakaka321