Spring boot微服务分布式框架Rouyi Cloud权限认证

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

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

🌹文末获取联系方式 📝

在这里插入图片描述


往期热门专栏回顾

专栏描述
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解析。
在这里插入图片描述

系统罗列

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

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

1、Web前端系统:rouyi-ui

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

npm run dev

在这里插入图片描述

1.2、访问前端页面

访问前端页面,由于没有登录(token)信息,会直接跳转到登录界面。
这里没有启动后台系统,获取验证码接口失败。
在这里插入图片描述

1.3、解析前端登录接口

前端登录接口:login(
http://localhost/dev-api/auth/login)
验证码接口:code(
http://localhost/dev-api/code)
在这里插入图片描述

1.3.1、解析地址

http://localhost/dev-api/auth/login
localhost 补全:localhost:80,对应上rouyi-ui的80端口
dev-api/auth/login,我们带上问题继续看下去
在这里插入图片描述

1.3.2、配置路径

可以看到rouyi-ui前端系统,为不同环境配置了访问路径前缀。
在dev环境中,对应的地址是:VUE_APP_BASE_API = ‘/dev-api’
那么【1.3.1】的路径,就剩下/auth/login了
在这里插入图片描述

2、网关系统:rouyi-gateway

2.1、启动nacos

启动nacos之后(nacos需要配置数据库并启动),可以看到ruoyi-开头的很多配置项。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2.2、启动rouyi-gateway

启动rouyi-gateway,可以看到默认的端口是8080,正好对应上rouyi-ui上配置的默认代理。
在这里插入图片描述

2.3、路径路由

可以在nacos里找到ruoyi-gateway-dev.yml文件,里面有对路由的配置。
routes:
# 认证中心
- id: ruoyi-auth
uri: lb://ruoyi-auth – 下面的路径,匹配ruoyi-auth系统
predicates:
- Path=/auth/** – 匹配前端访问的路径,凡是/auth/开头都匹配上
filters:
# 验证码处理
- CacheRequestFilter
- ValidateCodeFilter – 处理验证码
在这里插入图片描述
在这里插入图片描述

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

2.4、代码解析

2.4.1、获取验证码

获取验证码接口:com.ruoyi.gateway.config.RouterFunctionConfiguration.routerFunction
在RouterFunctionConfiguration类上有注解:@Configuration

生成验证码,并最终转换成图片流输出到页面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5、返回前端查看验证码

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


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

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

3.1、查看接口

找到类: com.ruoyi.auth.controller.TokenController
里面有4个接口:登录、登出、刷新token、注册
在这里插入图片描述

3.1.1、登录接口

登录接口主要做了2件事:
1、校验用户名、密码是否正确;
2、根据用户信息,创建token,并返回给前端
在这里插入图片描述
在这里插入图片描述


总结

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


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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go 程序的启动流程【1/2】

Go 程序的启动流程 本文将以一个简单的 HelloWorld 程序为例,探究 Go 程序的启动流程 package mainfunc main() {_ "Hello World" }入口 我们先通过 go build . 将代码编译成可执行文件,众所周知,我们在一个 shell 中执行可执行…

CLoVe:在对比视觉语言模型中编码组合语言

CLoVe:在对比视觉语言模型中编码组合语言 摘要引言相关工作CLoVe: A Framework to Increase Compositionality in Contrastive VLMsSynthetic CaptionsHard NegativesModel Patching CLoVe: Encoding Compositional Language inContrastive Vision-Language Models 摘要 近年来…

记一次安服薅洞实战

记一次为数不多但还算有点收获的一次实战(平时摸鱼来着...),大致任务是对某某市某*院进行次漏洞收集和外网资产梳理且是有授权的(其实是甲方不大清楚自己外网有多少资产),漏洞质量要求还挺高。emmm本来是打…

大米自动化生产线设备:现代粮食加工的核心力量

随着科技的不断进步和粮食加工行业的快速发展,大米自动化生产线设备在现代粮食加工中的地位愈发重要。这些设备不仅大大提高了生产效率,还保证了产品的质量和安全,成为了现代粮食加工行业不可或缺的核心力量。 一、自动化生产线设备助力效率提…

【面试经典150 | 动态规划】交错字符串

文章目录 写在前面Tag题目来源解题思路方法一:动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行…

一些Java面试题

1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和…

1.8.3 卷积神经网络近年来在结构设计上的主要发展和变迁——GoogleNet/inception-v1

1.8.3 卷积神经网络近年来在结构设计上的主要发展和变迁——GoogleNet/ inception-v1 前情回顾: 1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet 1.8.2 卷积神经网络近年来在结构设计上的主要发展和变迁——VGGNet GoogleNet问题 在VGGNet简单堆…

(2024)Ubuntu源码安装多个版本的opencv并切换使用

本人工作会用到x86_64的opencv和aarch64的opencv,所以写下来备忘自用 一、源码编译安装 依赖库安装: sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev o…

卷积神经网络实战

构建卷积神经网络 卷积网络中的输入和层与传统神经网络有些区别,需重新设计,训练模块基本一致 1.首先读取数据 - 分别构建训练集和测试集(验证集) - DataLoader来迭代取数据 # 定义超参数 input_size 28 #图像的总尺寸28*28…

【代码】二分法求最小值

仅适用于以下情况:区间内单调或者最多一个极小值 代码 以[0,pi]内的三角函数为例 clc clear close allx0:pi/1000:pi; ytest(x); figure() plot(x,y,.)cutnum100;x1x(1); x2x(end); error_max10^-1000;%能接受的误差上限 for i1:cutnum%这里cutnum是取值上限num(…

电池二次利用走向可持续大循环周期的潜力和挑战(第一篇)

一、背景 当前,气候变化是全球可持续发展面临的重大挑战。缓解气候变化最具挑战性的目标是在本世纪中期实现碳中和(排放量低到足以被自然系统安全吸收),其中电动汽车(EV)的引入是一项关键举措。电动汽车在…

对代理模式的理解

目录 一、前言二、案例1 代码2 自定义代理类【静态代理】2.1 一个接口多个实现,到底注入哪个依赖呢?2.1.1 Primary注解2.1.2 Resource注解(指定name属性)2.1.3 Qualifier注解 2.2 面向接口编程2.3 如果没接口咋办呢?2.…

阿里巴巴中国站获得1688商品详情 API:如何通过API接口批量获取价格、标题、图片、库存等数据

在数字化时代,数据的重要性不言而喻。对于电商从业者来说,获取商品详情数据是提升业务效率和用户体验的关键。阿里巴巴中国站作为电商行业的巨头,提供了丰富的API接口,方便开发者们批量获取商品信息。本文将详细叙述如何通过阿里巴…

C语言——详解字符函数和字符串函数(二)

Hi,铁子们好呀!之前博主给大家简单地介绍了部分字符和字符串函数,那么这次,博主将会把这些字符串函数给大家依次讲完! 今天讲的具体内容如下: 文章目录 6.strcmp函数的使用及模拟实现6.1 strcmp函数介绍和基本使用6.1.1 strcmp函…

总结:微信小程序中跨组件的通信、状态管理的方案

在微信小程序中实现跨组件通信和状态管理,有以下几种主要方案: 事件机制 通过事件机制可以实现父子组件、兄弟组件的通信。 示例: 父组件向子组件传递数据: 父组件: <child binddata"handleChildData" /> 子组件: Component({..., methods: { handleChildData(…

Linux网卡与IP地址:通往网络世界的通行证

在探索Linux网卡和IP地址的关系之前&#xff0c;我们得先理解Linux网卡是怎么工作的。想象一下&#xff0c;每台计算机都是一个世界&#x1f30e;&#xff0c;而网卡就是连接这些世界的门户&#x1f6aa;。网卡的工作就是接收和发送数据包&#xff0c;就像邮差&#x1f4ec;递送…

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表 文章目录 RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表1. MQTT概览2. MQTT 5.0 特性1. 特性概要2. Docker中安装RabbitMQ及启用MQTT5.0协议 3. MQTT 5.0 功能列表1. 消息过期1. 描述2. 举例3. 实现 2. 订阅标识…

洛谷 1126.机器人搬重物

思路&#xff1a;BFS 这道BFS可谓是细节爆炸&#xff0c;对于编程能力和判断条件的能力的考察非常之大。 对于这道题&#xff0c;我们还需要额外考虑一些因素&#xff0c;那就是对于障碍物的考虑和机器人方位的考虑。 首先我们看第一个问题&#xff0c;就是对于障碍物的考虑…

【洛谷】P9236 [蓝桥杯 2023 省 A] 异或和之和

题目链接 P9236 [蓝桥杯 2023 省 A] 异或和之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 1. 暴力求解 直接枚举出所有子数组&#xff0c;求每个子数组的异或和&#xff0c;再对所有的异或和求和 枚举所有子数组的时间复杂度为O&#xff08;N^2&#xff09;&…

Qt+OpenGL-part3

1-4EBO画矩形_哔哩哔哩_bilibili 可以绘制两个三角形来组成一个矩形&#xff08;OpenGL主要处理三角形&#xff09; 直接画两个三角形&#xff1a; #include "openglwidget.h" #include <QDebug>unsigned int VBO,VAO; unsigned int shaderProgram;//顶点着…