验证码

前端路由重写
之前已经讲过http://localhost/dev-api/code会在前端重写为http://localhost:8080/code。
请求第一步会进入网关模块

网关相关知识:Gateway基于的WebFlux框架,与我们平时用的WebMVC是不太一样的。网关由Route(路由)、Predicate(断言)、Filter(过滤器)组成。
详情可查看我之前写的文章:Spring Cloud Alibaba(一)——Gateway SpringCloud Gateway集成Alibaba Nacos实现动态路由配置

我们查看有关验证码的请求:

在这里插入图片描述

我们找到/code请求的位置 可以ctrl+shift+R 全局搜索寻找/code的位置
我们可以看到这里指向到validateCodeHandler处理
在这里插入图片描述
我们进入validateCodeHandler
在这里插入图片描述

我们打个断点查看 验证码逻辑
@符号之前的7+5=?生成图片经过base64编码 传给前端
答案12放在redis当中 有效期2分钟
返回的数据由uuid+图片
uuid也作为redis中key的一部分,后面用户登录的时候需要传回然后去对比redis当中的答案(保证每个请求都有一个自己独立的答案)
在这里插入图片描述
在这里插入图片描述

登录

相关知识:若依框架解读(微服务版)—— 1.登录逻辑
我们打个断点进入login方法
在这里插入图片描述
此处remoteUserService.getUserInfo()通过openFeign远程调用其他微服务获取用户信息
日志记录方法recordLogService.recordLogininfor()内部也是通过openFeign远程调用日志服务
详情可看若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)
在这里插入图片描述
在这里插入图片描述

接下来就比较简单了。Jwt也比较简单。相关知识:JWT详解

生成token返回。redis里面token(ps:这里的token只是一个uuid,往前端返回的map里面的access_token才是token)为key,将用户信息为值存入redis。
在这里插入图片描述
在这里插入图片描述

Logo

快速构建 Web 应用程序

更多推荐