相关推荐recommended
Spring boot微服务分布式框架Rouyi Cloud权限认证
作者:mmseoamin日期:2024-04-27

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝

Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第1张


往期热门专栏回顾

专栏描述
Java项目实战介绍Java组件安装、使用;手写框架等
Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、Vue
Java微服务实战Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
Java基础篇Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
Springboot篇从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
Spring MVC篇从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
华为云服务器实战华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
Java爬虫通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
Vue实战讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
Spring讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等

Spring boot框架若依RouYi Cloud专栏回顾

专栏导航描述
Spring boot框架Rouyi Cloud- -rouyi-ui Node版本过大导致项目启动报错95% emitting CompressionPlugin ERROR Error: error:0308010C:digital envelope routines::unsupported
Spring boot框架Rouyi Cloud- -token源码分析

前言

上一章节讲解了Spring Cloud框架Rouyi Cloud的环境部署安装,以及安装过程中遇到的一些问题(后端问题在Springboot、微服务中都有解决方法,所以重点只提了前端的一些问题)。

今天我们来讲解下整个框架的入口,登录流程之token解析。

Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第2张

系统罗列

今天只展示登录鉴权这一块,我们需要用到的系统模块如下:

  • 用户访问的Web前端系统:rouyi-ui
  • 网关系统:rouyi-gateway
  • 授权业务系统:rouyi-auth

    1、Web前端系统:rouyi-ui

    在Idea里打开Terminal(中文版是终端),输入命令:

    npm run dev
    

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第3张

    1.2、访问前端页面

    访问前端页面,由于没有登录(token)信息,会直接跳转到登录界面。

    这里没有启动后台系统,获取验证码接口失败。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第4张

    1.3、解析前端登录接口

    前端登录接口:login(

    http://localhost/dev-api/auth/login)

    验证码接口:code(

    http://localhost/dev-api/code)

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第5张

    1.3.1、解析地址

    http://localhost/dev-api/auth/login

    localhost 补全:localhost:80,对应上rouyi-ui的80端口

    dev-api/auth/login,我们带上问题继续看下去

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第6张

    1.3.2、配置路径

    可以看到rouyi-ui前端系统,为不同环境配置了访问路径前缀。

    在dev环境中,对应的地址是:VUE_APP_BASE_API = ‘/dev-api’

    那么【1.3.1】的路径,就剩下/auth/login了

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第7张

    2、网关系统:rouyi-gateway

    2.1、启动nacos

    启动nacos之后(nacos需要配置数据库并启动),可以看到ruoyi-开头的很多配置项。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第8张

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第9张Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第10张

    2.2、启动rouyi-gateway

    启动rouyi-gateway,可以看到默认的端口是8080,正好对应上rouyi-ui上配置的默认代理。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第11张

    2.3、路径路由

    可以在nacos里找到ruoyi-gateway-dev.yml文件,里面有对路由的配置。

    routes:

    # 认证中心

    - id: ruoyi-auth

    uri: lb://ruoyi-auth – 下面的路径,匹配ruoyi-auth系统

    predicates:

    - Path=/auth/** – 匹配前端访问的路径,凡是/auth/开头都匹配上

    filters:

    # 验证码处理

    - CacheRequestFilter

    - ValidateCodeFilter – 处理验证码

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第12张

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第13张

    前文【1.3.2】的地址:/auth/login,正好对应ID为ruoyi-auth的路由规则,凡是/auth/开头的地址,都会路由到ruoyi-auth系统。

    2.4、代码解析

    2.4.1、获取验证码

    获取验证码接口:com.ruoyi.gateway.config.RouterFunctionConfiguration.routerFunction

    在RouterFunctionConfiguration类上有注解:@Configuration

    生成验证码,并最终转换成图片流输出到页面。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第14张

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第15张

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第16张

    2.5、返回前端查看验证码

    rouyi-gateway启动成功了,也看到了验证码的代码就在rouyi-gateway系统里,这时返回网页,可以看到验证码已经显示出来了。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第17张


    3、授权业务系统:rouyi-auth

    授权认证中心也启动成功了,我们是通过网关+nacos微服务访问,所以业务系统的端口号无所谓了。

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第18张

    3.1、查看接口

    找到类: com.ruoyi.auth.controller.TokenController

    里面有4个接口:登录、登出、刷新token、注册

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第19张

    3.1.1、登录接口

    登录接口主要做了2件事:

    1、校验用户名、密码是否正确;

    2、根据用户信息,创建token,并返回给前端

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第20张

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第21张


    总结

    其他细节就留给大家去继续探索, token这块我们就讲解到这里。


    资料获取,更多粉丝福利,关注下方公众号获取

    Spring boot微服务分布式框架Rouyi Cloud权限认证,在这里插入图片描述,第22张