【项目学习】谷粒商城学习记录7 - 认证服务
一、环境搭建 & 准备工作
1. 创建新模块
2. 配置依赖 pom.xml文件
- 引入common模块,排除gulimall-common包的mybatis-plus
- 将模块添加到注册中心
- 添加配置信息
- 添加服务发现注解
- 添加配置信息
- 启动类添加远程调用注解
@EnableFeignClients
- 测试:服务成功加入nacos
- 关闭thtmeleaf缓存
spring.thymeleaf.cache=false
3. 静态页面搭建
- 将注册页面和登录页面放在服务资源目录下
- 登录页面改名
login.html
, 注册页面改名reg.html
- 登录页面改名
- host文件新增域名地址
- 登录、注册页面动静分离,将静态资源移到nginx下
- 修改页面内的路径
4. 网关配置
- gateway配置文件中添加
# 认证服务 - id: gulimall_auth_route uri: lb://gulimall-auth-server predicates: - Host=auth.gulimall.com
5. 网页转发
-
首先修改首页和登录页,注册页的相互跳转地址
- login.html页面修改
- gulimall.html首页页面修改
- login.html页面修改
-
创建controller.LoginController.class
@Controller public class LoginController { @GetMapping("/login.html") public String loginPage() { return "login"; } @GetMapping("/reg.html") public String regPage() { return "reg"; } }
-
修改登录页跳转注册页地址
-
修改注册页跳转登录页地址
5. 发送验证码后倒计时
- 首先将发送键写成a标签,并设置id
- 编写js代码
$(function() { $("#sendCode").click(function(){ //1、给指定手机号发送验证码 //2、倒计时 if($(this).hasClass("disabled")) { //正在倒计时 } else { timeoutChangeStyle(); } }) }) var num = 60; function timeoutChangeStyle() { $("#sendCode").attr("class","disabled"); if(num == 0) { $("#sendCode").text("发送验证码"); num = 60; $("#sendCode").attr("class",""); } else { var str = num + "s 后再次发送"; $("#sendCode").text(str); setTimeout("timeoutChangeStyle()",1000); } num --; }
6. 实现页面渲染
- 创建config.GulimallWebConfig.class
public class GulimallWebConfig implements WebMvcConfigurer { public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/login.html").setViewName("login"); registry.addViewController("/reg.html").setViewName("reg"); } }
7. 配置邮箱验证码(使用的qq邮箱)
- 首先开启邮箱POP3/IMAP/SMTP/Exchange/CardDAV 服务,并获得授权码
- 在gulimall-third-party服务中添加maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
- 添加配置信息
spring: mail: host: smtp.qq.com username: qq号@qq.com password: 授权码 default-encoding: utf-8