从零搭建微服务-认证中心(四)

news/2025/2/14 5:05:18/

写在最前

如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。

源码地址:https://gitee.com/csps/mingyue

文档地址:https://gitee.com/csps/mingyue/wikis

搭建前端框架

感谢开源项目【vue-next-admin

本人后端一枚,前端不是很懂,前端有什么写的不好的地方,请积极指出,我虚心受教,积极改正!

运行项目

参考项目 README.md 【使用说明

登录与登出

访问:http://localhost:8888/#/login?redirect=/home&params={}

登录前缓存数据

image-20230529134224405

登录

image-20230529134058378

查看缓存

image-20230529134450665

登出

image-20230529140801840

查看缓存

oauth2 相关缓存已经删除了

image-20230529140629727

前端相关代码

登录

打开 src/views/login/component/account.vue,查看 onSignIn() 登录函数

const onSignIn = async () => {state.loading.signIn = true;useLoginApi().signIn(state.ruleForm).then(async res => {// 存储 token 到浏览器缓存Session.set('token', res.data.access_token);// 模拟数据,对接接口时,记得删除多余代码及对应依赖的引入。用于 `/src/stores/userInfo.ts` 中不同用户登录判断(模拟数据)Cookies.set('userName', state.ruleForm.username);if (!themeConfig.value.isRequestRoutes) {// 前端控制路由,2、请注意执行顺序const isNoPower = await initFrontEndControlRoutes();signInSuccess(isNoPower);} else {console.log(2);// 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由// 添加完动态路由,再进行 router 跳转,否则可能报错 No match found for location with path "/"const isNoPower = await initBackEndControlRoutes();// 执行完 initBackEndControlRoutes,再执行 signInSuccesssignInSuccess(isNoPower);}});};

打开 src/api/login/index.ts,查看 signIn() 登录函数

signIn: (data: object) => {console.log(data);let client_id = 1001;let grant_type = 'password';let client_secret = 'aaaa-bbbb-cccc-dddd-eeee';// TODO 规范入参类型let username = data.username;let password = data.password;return request({url: '/api/oauth2/token',method: 'post',params: {grant_type, client_id, client_secret, username, password}});
}

用户信息

src/stores/userInfo.ts 模拟用户信息

async getApiUserInfo() {...
}

登出

打开 src/layout/navBars/topBar/user.vue,查看 onHandleCommandClick() 登录函数

const onHandleCommandClick = (path: string) => {if (path === 'logOut') {ElMessageBox({...}, 700);} else {done();}},}).then(async () => {// 调用退出登录接口useLoginApi().signOut().then(res => {// 清除缓存/token等Session.clear();// 使用 reload 时,不需要调用 resetRoute() 重置路由window.location.reload();})}).catch(() => {});}
};

小结

至此,一个简单的 OAuth2 前后端分离小 Demo 就算完事儿了。但截止目前还不能算是微服务,就是一个单服务的小应用。

接下来我们规划一下,小吹一波:

image-20230529142252577

目前的结构是 mingyue-ui 直接访问 mingyue-authmingyue-auth 直接模拟数据(并未交互数据库)。

我们希望是所有服务注册到 Nacos,然后 mingyue-ui 访问 mingyue-gateway,然后由 mingyue-gateway 自动请求到 mingyue-auth,最后通过 feign 调用到 mingyue-syste 查询数据库用户信息、客户端信息。

接下来我们先搭建 mingyue-nacos,认证中心未完待续~~


http://www.ppmy.cn/news/103402.html

相关文章

《基础知识》

一、前端 (1)Vue动态设置Style属性:Vue动态设置Style属性_vue :style_花归去的博客-CSDN博客 (2)vue click.native和click.stop和click.self:vue click.native和click.stop和click.self_歪歪100的博客-CS…

云计算与云安全——应用安全

文章目录 问题1——通过模拟恶意攻击者的攻击手法来检测安全漏洞的具体工作方式?请对其做详细说明 问题2——先对web应用进行端口扫描,获取应用所涉及的相关端口和端口上面的网络服务,然后在漏洞库里面进行匹配的工作方式是什么&#xff1f…

SpringBoot配置文件的注入和读取

目录 1. 配置文件的作用 2. 两种配置文件的格式: 2.1 properties 基本语法: 2.1.1 写入 2.1.2 读取 执行原理 2.1.3 缺点分析 2.2 yml 基本语法: 2.2.1 写入(非对象) 2.2.3 配置对象 2.2.4 配置集合 多个配…

iPhone遇到错误53该如何快速修复?

在所有手机中,iphone是出现问题较少的一款手机,但有时候用户会偶尔遇到一些系统问题。例如,错误53是许多用户常见反馈问题之一。如果你还得到错误53 今天小编的就分享如果iphone遇到系统错误53的解决办法。 当我们尝试通过iTunes工具来恢复或…

【Python入门篇】——Python中循环语句(循环中断break和continue)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…

2023年软考成绩什么时候出?软考成绩公布时间间隔多久

一、2023年软考成绩什么时候出 2023年软考成绩公布时间预计在7月份,每次软考成绩查询时间都不一样,一般是在考后两个月内就能查询,到时候,考生登录中国计算机技术职业资格网,选择2023年当次考试时间,依次输…

Webpack学习理解

使用Webpack操作记录: 1 安装Node.js 下载地址:https://nodejs.org/zh-cn/download 2 Node.js安装完成之后,需要将node.exe的路径配置到环境变量之中,方便可以在命令窗口中直接使用 path>node.exe所在路径 3 使用命令窗口…

QString 用法

left filename.left(n);取filename左边size - n长度的数据; QString filename; //“movie.png” filenamefilename.left(filename.size() -4); //“movie” chop filename.chop(n);从字符串filename尾部删除 n 个字符 QString filenam…