前言
本文主要介绍缺陷跟踪系统项目中涉及的邮箱验证码找回密码功能的实现,效果图如下:
后端实现
1.数据库表设计
实现邮箱验证码功能只需设计一张用户表,用到邮箱、密码、加密盐,这几个字段。其他字段根据项目需要自己额外设计。
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`realname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真实姓名',
`password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
`secret_key` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码密钥',
`email` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`phone` char(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系方式',
`gender` tinyint(1) NULL DEFAULT NULL COMMENT '性别,0男1女',
`status` tinyint(1) NULL DEFAULT NULL COMMENT '账号状态,0注销1正常2冻结',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `index_phone_unique`(`phone`) USING BTREE,
UNIQUE INDEX `index_username_unique`(`username`) USING BTREE,
UNIQUE INDEX `email_UNIQUE`(`email`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
2.安装并启动Redis
在该功能的实现中,Redis主要用来存储请求权限码和邮箱验证码。
下载并安装Redis后,输入启动命令
redis-server.exe redis.windows.conf
如果出现以下界面,则成功启动,成功启动后窗口不能关闭。
3.添加依赖
<!--spring-boot启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--spring-boot web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!--mybatis-plus启动依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.1</version>
</dependency>
<!-- Redis依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 邮箱依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
4.编写配置文件
编写application配置文件,配置数据库相关信息。(此处不展示)
编写application-email.yml 配置文件,配置邮箱的相关信息。
spring:
mail:
host: smtp.qq.com
u