redis整合通过QQ邮箱发送验证码

news/2024/12/21 22:55:34/

目录

1.QQ开启服务

 2.java中配置

2.1.导入依赖

 2.2.yml配置

2.2.1 mail配置

2.2.2 redis配置(与mail同级,在spring下一级)

2.3.conroller层

2.3.1 在controller类上加上

2.3.2 生成验证码方法

2.3.3发送邮件接口

2.3.4 用户登录接口(整合)

3.apifaox测试功能

3.1 idea直接导出接口到apifox

3.1.1 下载插件

3.1.2 来到apifox生成令牌

3.1.3 来到idea设置里面进行相关配置

 3.2 在apifox中手动添加接口


1.QQ开启服务

QQ邮箱地址:登录QQ邮箱

进入qq邮箱,点击右上角设置

 点击:

朝下翻,点击:

点击:

点击生成授权码复制一下即可: 

 2.java中配置

2.1.导入依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.7.4</version></dependency>

 2.2.yml配置

2.2.1 mail配置

spring:mail:username: xxx@qq.com #申请服务的邮箱,也就是发送邮件的邮箱password: xxx #刚才申请服务产生的授权码host: smtp.qq.com  #默认default-encoding: UTF-8  #默认properties: #默认mail:smtp:auth: truestarttls:enable: truerequired: true

2.2.2 redis配置(与mail同级,在spring下一级)

  redis:#Redis服务器地址  此处的host为通过ifconfig命令获取的linux的IP地址host: xxxx#密码password: xxx#Redis服务器连接端口port: 6379#Redis数据库索引(默认为0)database: 0#Redis连接超时时间(毫秒)timeout: 1800000#配置Redis连接池lettuce:pool:#Redis连接池的最大连接数(负数表示无限制)max-active: 20#Redis最大阻塞等待时间(负数表示没有限制)max-wait: -1#Redis连接池中的最大空闲连接数max-idle: 5#Redis连接池中的最小空闲连接数min-idle: 0

2.3.conroller层

2.3.1 在controller类上加上

    @Value("${spring.mail.username}")private String mailUsername;

2.3.2 生成验证码方法

//随机生成6位数字public String getCode(String mail) {Random random = new Random();StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < 6; i++) {stringBuilder.append(random.nextInt(10));}//将随机得到的验证码存入redis中设置过期时间为60s
//        redisTemplate.opsForValue().set("RedisCode", stringBuilder.toString(), 60, TimeUnit.SECONDS);String code = stringBuilder.toString();log.info("==============验证码=" + code);redisTemplate.opsForValue().set(mail, code, 60, TimeUnit.SECONDS);return stringBuilder.toString();}

2.3.3发送邮件接口

    //发送邮件@GetMapping("/email")public R sendEmail(String toMail) {SimpleMailMessage massage = new SimpleMailMessage();massage.setFrom(mailUsername);massage.setTo(toMail);massage.setSubject("黑客帝国为你服务,请收好你的验证码:");massage.setText(getCode(toMail));//发送内容为验证码mailSender.send(massage);return R.success("发送成功!");}

2.3.4 用户登录接口(整合)

/*** 用户登录*/@PostMapping("/login")public R login(@RequestParam Map<String, Object> map) {String mail = (String) map.get("mail");String code = (String) map.get("code");String username = (String) map.get("username");String password = (String) map.get("password");//   log.info(code.toString());//从Session中获取保存的验证码// Object codeInSession = session.getAttribute(phone);//从redis获取缓存的验证码Object codeInSession = redisTemplate.opsForValue().get(mail);//进行验证码的比对(页面提交的验证码和Session中保存的验证码比对)if (codeInSession != null && codeInSession.equals(code)) {//如果能够比对成功,说明登录成功//如果用户登录成功,删除redis中缓存的验证码redisTemplate.delete(mail);log.info("==================验证码校验成功!====================");boolean flag = userService.queryPasswordByUsername(username, password);if (flag) {return R.success("登录成功!");} else {return R.error("密码错误!");}}return R.error("验证码错误!");}

3.apifaox测试功能

3.1 idea直接导出接口到apifox

3.1.1 下载插件

3.1.2 来到apifox生成令牌

点击:

复制生成的令牌

3.1.3 来到idea设置里面进行相关配置

然后右键点击你要导入的项目

 之后idea会弹出一个窗口,让你填写项目的id。

在apifox中复制一下你的项目ID填入即可。

 这时候去apifox点击右上角的刷新即可:

 3.2 在apifox中手动添加接口


http://www.ppmy.cn/news/237610.html

相关文章

机械键盘linux,罗技发布第一款办公室机械键盘 K840 Mechanical

罗技旗下的机械键盘已经有不少&#xff0c;但到目前为止全部都划分在 G 系列的游戏产品线底下&#xff0c;在外观上虽然近来有收敛一点了&#xff0c;但有时候放在办公室环境还是太显眼了一些。上个月发布的 G413 是最接近「传统」办公室键盘外观的产品&#xff0c;果不期然地罗…

机械键盘浅谈

键盘是跟电脑频繁打交道的人的最重要的设备之一了&#xff0c;程序员自然也不例外&#xff0c;对我们来说一个好的键盘的重要性自然不言而喻&#xff0c;提到好键盘&#xff0c;自然会想到机械键盘&#xff0c;我最近入手了一个机械键盘&#xff0c;简单谈谈使用的感受吧。 我…

小米机械键盘测试软件,网友吐槽小米悦米机械键盘“有文化”:“独创”ATL按键...

IT之家讯 10月18日消息&#xff0c;今天小米众筹上线了一款悦米机械键盘&#xff0c;该机械键盘采用87键位设计&#xff0c;机身为铝合金材质&#xff0c;采用TTC红轴&#xff0c;官方称可经受5000万次可靠性测试。主控为意法半导体主控芯片&#xff0c;32位ARM架构、1000Hz刷新…

适配linux的机械键盘,完美适配macOS的机械键盘又多一款 买买买

原标题&#xff1a;完美适配macOS的机械键盘又多一款 买买买 ikbc 是由发烧友创立的国产品牌&#xff0c;是“THE KEYBOARD TO CHEER YOU UP”的缩写。ikbc 推出的机械键盘外观比较大方&#xff0c;设计不玩花样&#xff0c;万年公模、皮实耐操&#xff0c;算得上是日常所用优秀…

森松尼N-J60双模机械键盘按键操作说明

疫情头上买的尼森松N60双模机械键盘&#xff0c;价格美丽&#xff0c;不过熬了整整快1个月&#xff0c;京东总算是给我送到了。外包装有点花里胡哨&#xff0c;看着有点少女心&#xff0c;包装拆完直接扔了&#xff0c;哇咔咔。 话不多说直接上参数吧&#xff0c;咱也不是做评…

适合学计算机用的机械键盘,一款好用的机械键盘应该怎么选?看完这篇就明白了...

一款好用的机械键盘应该怎么选?看完这篇就明白了 2019-07-30 15:53:13 4点赞 14收藏 3评论 今天给大家带来好物推荐第1期——机械键盘。作为在办公室办公的从业者们,平时工作中与电脑的接触时间最多。而人与电脑的交互主要靠键盘和鼠标,其中使用最多的一般是键盘。要想真正大…

程序员非机械键盘_最好的非机械键盘

程序员非机械键盘 If you’re at all interested in computer accessories, you’ve no doubt noticed the trend towards mechanical keyboards. Their satisfying click-clack and deep customization options are appealing to a huge range of people. But that range does…

机械键盘和机械手感键盘的区别 机械键盘和机械手感键盘哪个好用

机械键盘就是指其按键触发是金属与金属&#xff0c;并且机械键盘每个按键下面都有单独的微动开关和电路板相连接&#xff0c;打字手感比较好。好的机械键盘还有分区压力设计&#xff0c;对于长时间录入文字的人来说很适合&#xff0c;可以减缓疲劳&#xff0c;游戏里也不容易发…