SpringBoot实现QQ邮箱注册和登录

1、登录注册思路

这是一个使用spring boot做的一个qq邮箱注册和登录的项目 。
没写前端页面,使用postman测试 。有截图详细 。
1.1、思路注册:通过输入的邮箱发送验证码,检验前端传来的验证码是否和后台生成的一致,若一致,将数据写入数据库,完成注册;
登录:通过输入的邮箱查询密码,然后比较密码是否一致,一致就是登录成功 。
1.2、整个项目结构图
SpringBoot实现QQ邮箱注册和登录

文章插图
 
2、准备2.1、开启邮箱POP3/SMTP服务登录qq邮箱后,点击左上方的设置,选择账户,如下图 。
SpringBoot实现QQ邮箱注册和登录

文章插图
 
然后一直往下滑,看到如下图的POP3/SMTP服务,点击开启,应该会让帮定的手机号发个短信,然后会收到一个授权码,一定要好好保存,在Appliction.properties配置中会用到 。
SpringBoot实现QQ邮箱注册和登录

文章插图
 
2.2、创建一个spring boot项目的时候,一直确认,jdk选择8 。下边是pom.xml中<dependencies>标签的全部依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><!--jdbc--><dependency><groupId>MySQL</groupId><artifactId>mysql-connector-JAVA</artifactId><version>8.0.19</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>    </dependencies>2.3、application.properties配置文件application.properties配置文件
#邮箱配置#平台地址,这里用的是qq邮箱,使用其他邮箱请更换spring.mail.host = smtp.qq.com#改成自己的邮箱spring.mail.username = xxxxx@qq.com#发送短信后它给你的授权码 填写到这里spring.mail.password = xxxxxx#这东西不用改spring.mail.properties.mail.smtp.ssl.enable=true##编码格式spring.mail.default-encoding=UTF-8#数据库相关配置spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/email?useSSL=true&characterEncoding=utf-8&serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=root#配置mappermybatis.mapper-locations=classpath:mapper/*.xml2.4、创建数据库数据库结构如下图
SpringBoot实现QQ邮箱注册和登录

文章插图
【SpringBoot实现QQ邮箱注册和登录】 
创建一个数据库email
CREATE DATABASE email;在email数据库创建user表
CREATE TABLE `user` (`id` int(20) NOT NULL AUTO_INCREMENT,`username` varchar(255) NOT NULL,`password` varchar(255) NOT NULL,`email` varchar(255) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;3、全部代码类如最上边的项目结构图 。controller包是和前端对接的,mapper包中是接口,pojo是实体类,service层是逻辑代码,vo包是前端发送数据暂时保存 。
执行流程: 使用postman发送请求,controller中会接受,然后调用service中的逻辑代码,service会调用的mapper中接口,mapper的对应的xml实现对数据库的各种操作 。
3.1、UserController.java
package com.lu.youxiang.controller;import com.lu.youxiang.service.MailService;import com.lu.youxiang.vo.UserVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpSession;@Controllerpublic class UserController {@Autowiredprivate MailService mailService;@PostMapping("/sendEmail")@ResponseBodypublic String sendEmail(String email, HttpSession httpSession){mailService.sendMimeMail(email, httpSession);return "sucess";}@PostMapping("/regist")@ResponseBodypublic String regist(UserVo userVo, HttpSession session){mailService.registered(userVo,session);return "sucess";}@PostMapping("/login")@ResponseBodypublic String login(String email, String password){mailService.loginIn(email,password);return "sucess";}}


推荐阅读