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这块我们就讲解到这里。


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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【opencv】示例-asift.cpp 对两张图片之间进行仿射特征比对

#include <opencv2/core.hpp> // 包含OpenCV核心功能的头文件 #include <opencv2/imgproc.hpp> // 包含OpenCV图像处理功能的头文件 #include <opencv2/features2d.hpp> // 包含OpenCV特征检测相关功能的头文件 #include <opencv2/highgui.hpp> // 包含…

在 Amazon Timestream 上通过时序数据机器学习进行预测分析

由于不断变化的需求和现代化基础设施的动态性质&#xff0c;为大型应用程序规划容量可能会非常困难。例如&#xff0c;传统的反应式方法依赖于某些 DevOps 指标&#xff08;如 CPU 和内存&#xff09;的静态阈值&#xff0c;而这些指标在这样的环境中并不足以解决问题。在这篇文…

5G随身wifi真实测评!飞猫5g随身wifi怎么样?飞猫5GVS格行5G随身wifi哪款网速快?5G随身wifi推荐品牌第一名!

飞猫5G随身wifi&#xff1a; 产品外观&#xff1a;黑色大气外观&#xff0c;净重175g&#xff0c;屏幕有信号和指示灯。 产品性能&#xff1a;采用展锐芯片。6根LDS天线&#xff0c;网速100-200mbps&#xff0c;网络延迟10-20ms&#xff0c;2.4G/5G双频可选&#xff0c;超稳定…

重生奇迹mu剑士连招技巧

剑士是攻守兼备的近战之王&#xff0c;拥有着娴熟的剑术与强大的力量。 剑士的攻击能力和防御能力都比较强&#xff0c;自身的血量也比较高。他不仅可以双持单手武器&#xff0c;达到双剑流或者剑盾流的水平&#xff0c;同时&#xff0c;剑士也可以使用强大的双手武器&#xf…

Python最简单的图片爬虫

Python最简单的图片爬虫&#xff0c;20行代码带你爬遍整个网站-腾讯云开发者社区-腾讯云 (tencent.com) import urllib.parse import json import requests import jsonpath url https://www.duitang.com/napi/blog/list/by_search/?kw{}&start{} label 美女 label url…

k8s CNI Calico 网络模式总结【建议收藏】

目录 calico架构图 ​编辑 IPIP模式下的架构图 calico 核心组件 Overlay 网络模式&#xff1a; Vxlan IPIP IpCrossubnet Pod IP对外暴露 不对外暴露&#xff1a; 实现对外暴露的方法&#xff1a; overlay模式下的网络MTU Iptables & ipvs Full-mesh o…

LED发光模组的故障及解决方法

LED发光模组在应用过程中可能会出现各种故障&#xff0c;正确诊断并采取相应的解决方法至关重要&#xff0c;以下是一些常见故障现象及其解决方法的总结&#xff1a; 一、现象&#xff1a;所有的LED闪烁 问题&#xff1a;接触不良 解决方法&#xff1a;检查并重新固定松动处&am…

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

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

CTF之矛盾

这一题就是php的弱比较“” 这里要求输入的不是数字&#xff0c;并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符&#xff0c;因为php的弱比较将字符与数字进行比较的时候&#xff0c;会把字符转换成数字再比较&#xff0c;当转换到字符时后面便都为空了 flag{…

BUUCTF---新年快乐(reverse)

1.题目描述&#xff1a;下载一个压缩包&#xff0c;里面有个exe文件 2.用PE查壳&#xff08;有个32位的UPX壳&#xff09; 3.脱壳&#xff0c;使用工具万能脱壳器&#xff0c;下载地址&#xff1a;https://www.onlinedown.net/soft/634046.htm 4.脱壳完后&#xff0c;生成新的e…

感染了后缀为.jayy勒索病毒如何应对?数据能够恢复吗?

导言&#xff1a; 在当今数字化的世界中&#xff0c;网络安全已经成为了每个人都需要关注的重要议题。而勒索病毒作为网络安全领域中的一大威胁&#xff0c;不断地演变和升级&#xff0c;给个人和组织带来了严重的损失和困扰。近期&#xff0c;一种名为.jayy的勒索病毒引起了广…

含风电-光伏-光热电站电力系统N-k安全优化调度模型

目录 1 主要内容 2 部分程序 3 部分结果 4 下载链接 1 主要内容 该程序参考《光热电站促进风电消纳的电力系统优化调度》光热电站模型&#xff0c;主要做的是考虑N-k安全约束的含义风电-光伏-光热电站的电力系统优化调度模型&#xff0c;从而体现光热电站在调度灵活性以及经…

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

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

cesium entity默认的点击事件

一、单击事件 点击entity&#xff0c;屏幕出现一个绿色的框&#xff0c;不想显示这个绿色框有两个办法 1、在创建viewer的时候&#xff0c;设置selectionIndicator为false // 初始化地图容器viewer new Cesium.Viewer(cesiumContainer, {contextOptions: {webgl: {alpha: tru…

LED点阵屏与LCD1602

目录 LED点阵屏 点阵屏的介绍 LED点阵屏分类 点阵屏的显示原理 点阵案例 静态案例 电路图 keil文件 动态案例 电路图 keil文件 LCD1602 LCD1602概述 LCD1602内部结构 存储器结构 LCD引脚及应用电路 时序结构 LCD1602指令集 LCD1602编程 初始化 显示字符 …

前端三剑客 —— CSS (第五节)

目录 内容回顾&#xff1a; 特殊样式 特殊样式 CSS变量 常见函数 倒影效果 页面布局 Table 布局&#xff08;了解即可&#xff09; DIVCSS布局 弹性布局 1&#xff09;不使用弹性布局&#xff0c;而是使用DIVCSS 2&#xff09;使用弹性布局实现导航菜单 内容回顾…

中非绿色能源合作走深走实

近日&#xff0c;第十六届非洲能源大会在南非立法首都开普敦举行&#xff0c;探讨实现非洲能源转型的可持续解决方案。近年来&#xff0c;中国与非洲国家不断加强绿色能源合作&#xff0c;促进双方优势资源互补&#xff0c;逐步探索合作共赢的绿色能源合作方案。 势头良好 近年…

SystemC入门学习Demo用例的工程化配置

背景&#xff1a;对不同的用例文件&#xff0c;使用CMakeLists.txt进行工程化管理的演示&#xff0c;这样开发者可以更加关注在代码开发上。 1&#xff0c;首先安装好系统环境的systemC库&#xff1a;ubuntu系统安装systemc-2.3.4流程-CSDN博客 2&#xff0c;准备好一个demo用…

开源免费的MySQL和MariaDB图形化管理软件

2024年4月7日&#xff0c;周日凌晨 有很多开源免费的MySQL和MariaDB图形化管理界面可供选择。 以下是一些常用的工具&#xff1a; phpMyAdmin&#xff1a;phpMyAdmin 是一个用 PHP 编写的免费开源的 MySQL 和 MariaDB 管理工具&#xff0c;它提供了一个基于 Web 的界面&#…