admin管理员组文章数量:1634854
文章目录
- 会员注册_邮箱验证码功能实现:
- 前端操作:
- 后端操作:
- SpringBoot集成邮件发送验证码:
- 1.导入发送邮件jar包
- 2.配置
- 3.Controller层处理
- 4.service层注入、逻辑处理
- 5、测试是否发送验证码
会员注册_邮箱验证码功能实现:
会员点击登录——>到达会员登录页面——>会员注册账号——>返回登录页面登录。
注册账号:通过邮箱验证码注册
邮箱验证模拟:
-
准备两个QQ邮箱.
-
一个QQ发送验证码,一个QQ接受验证码
-
发送验证码的QQ就相当于QQ邮箱公司,你注册一个账号,公司给你一个验证码后,你注册成功
-
正在注册为会员的账号:1643137133@qq
(发送方)qq邮箱公司的账号:1689724409@qq
前端操作:
点击登录——>跳转到注册页面注册——>邮箱验证——>注册完成后回到登录界面登录
注册时:
-
判断邮箱有没有被注册过
-
判断邮箱账号输入格式对不对
-
向后端提交邮箱账号,获取验证码
- 点击获取验证码按钮,进入倒计时,1分钟之内按钮处于禁用状态,成功获取验证码后解除禁用
-
提交表单数据到数据库后保存,注册成功
后端操作:
SpringBoot集成邮件发送验证码:
用一个qq号发送方 模拟 服务端发送验证码
1.导入发送邮件jar包
pom.xml
<!--java发送qq邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.配置
application.yml
#spiring配置
spring:
mail:
host: smtp.qq
username: 1689724409 #发送方qq号
password: lcrijwfdgesjgdji #授权码 qq邮箱生成的
default-encoding: utf-8
3.Controller层处理
/*
会员注册 生成注册的验证码,发给正在注册的邮箱账号
*/
@GetMapping(value = "/createAuthCode")
public CommonResult createAuthCode(String email){
try {
//判断邮箱账号时候已经存在
int res = memberService.createAuthCode(email);
if(res==0){
return new CommonResult("生成成功",200,null);
}else{
return new CommonResult("生成失败",500,null);
}
}catch (Exception e){
e.printStackTrace();
return new CommonResult("生成失败",500,null);
}
}
4.service层注入、逻辑处理
//邮箱验证注入
@Autowired
private JavaMailSender javaMailSender;
//验证码放在缓存里面
@Autowired
RedisTemplate redisTemplate;
/*
需要一个QQ号作为发送方,发送验证码,需要在QQ邮箱中做设置
*/
public int createAuthCode(String email) {
//验证邮箱格式 略 邮箱没有问题,就要发送请求,获取验证码
//封装邮件信息
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("1689724409@qq"); //发送验证码的qq邮箱,模拟作为公司的服务端
message.setTo(email); //就是传过来的emil,正在注册的QQ邮箱账号
message.setSubject("主题:注册验证码");
String code = createCode(); //创建验证码
message.setText(code); //把创建的验证码set进message中
mailSender.send(message); //发送message
//将验证码存放到redis 5分钟 reids中存放:通过键值对存放,键:emil, 值:code redis中的验证码和你注册时输入的验证码一比对,正确就注册成功
redisTemplate.opsForValue().set(email,code,5, TimeUnit.MINUTES);
return 0;
}
public String createCode(){
//随机生成6位数字验证码
Random random = new Random();
int randomNum = random.nextInt(1000000);//0-999999 000023 456 99898
String randomCode = String.format("%06d", randomNum);//格式化
return randomCode;
}
5、测试是否发送验证码
注册的账号:1643137133@qq 收到验证码,则发送验证码成功。
- 看看redis中是否有缓存的验证码
版权声明:本文标题:实现会员注册功能时如何通过qq邮箱获取验证码,从而验证登录? 详细步骤 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729200420a1189530.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论