springboot用户注册、找回密码的邮箱验证码存入redis,三分钟有效

1.首先配置redis,笔者使用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","邮箱格式不正确!");
        }
发布了25 篇原创文章 · 获赞 4 · 访问量 1515

猜你喜欢

转载自blog.csdn.net/weixin_39025362/article/details/105528813