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

news2024/9/23 19:28:26

写在最前

如果这个项目让你有所收获,记得 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,再执行 signInSuccess
			signInSuccess(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.coloradmin.cn/o/611407.html

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

相关文章

最厉害的缓存框架,没有之一!

Redis有多火爆? 现在阿里、腾讯这样的大厂和大部分互联网公司,基本上都需要使用到Redis技术。网上发布的Java开发工程师岗位的招聘信息,对Redis的要求都是熟练掌握。 而且现在大厂的大部分面试题都和Redis有关,尤其是在阿里、字节…

在 iPhone 和 Android 上恢复已删除的微信消息/聊天的 3 种方法

微信是一款面向移动用户的免费即时通讯应用程序。它适用于 iOS 和 Android。 好消息是,在微信 经历了如此艰难的运行之后,它仍在我们身边,并将在其新所有者恢复工具的帮助下继续发展。 微信 是一个相当受欢迎消息应用程序。非常简单易用&am…

【论文阅读】Megatron-LM要点

Megatron-LM论文要点 本文主要是对李沐老师的b站分享做一下自己的理解和总结。 李沐老师b站分享 模型结构无非就是那样,相比而言,想要训练更大的模型而又能平稳进行,是一项非常高超的技术! nvidia 跟gpipe类似,也是…

mysql中sql语句之分组(group by)

文章目录 前言分组查询定义语法说明 group by使用group by group_concat()的使用group by 聚合函数的使用group by having的使用group by with rollup的使用分组查询小结 前言 今天遇到公司新来的小伙伴咨询问题,统计集团内部的在职员工与离职员工数量&#xf…

负载不堵塞,稳定可靠,企业性能测试指南!

目录 前言: 基准测试 - 确认你的产品在正常使用条件下的性能 负载测试 - 确认你的产品在高负荷下的性能 压力测试 - 确认你的产品的极限性能 稳定性测试 - 确认你的产品在长时间高负荷下的表现 总结 前言: 在当今竞争激烈的商业环境中,…

我敢说,这是科普路由协议的最高境界

大家好,我是许公子。 路由协议,经常看我文章的小友都知道,给你们说过很多期了。 这是网络世界里,很重要的一个概念,总得来说,它负责将数据包从源节点传递到目的节点。 最近又有很多萌新关注过来&#xff…

C语言:计算n的阶乘(不考虑溢出)

题目: 从键盘输入一个值n,计算n的阶乘, 如:输入5,计算5的阶乘 --> 5! 1 * 2 * 3 * 4 * 5 思路: 第一步: 创建一个变量 ret ,用来存放每次相乘后的值, 因为 0 乘 任何…

uipath 实现连接pg数据库

1、下载ODBC 如需要使用UiPath连接数据库进行操作,需要先准备必需条件先安装ODBC。 postgresql ODBC下载链接:https://www.postgresql.org/ftp/odbc/versions/msi/ 下载最新的安装包即可。 2、配置ODBC 下载完pgsql ODBC的安装包直接打开压缩包进行…

实验篇(7.2) 07. 通过安全隧道访问指定网站 (SSL) ❀ 远程访问

【简介】通过前面的实验,我们已经了解了SSL VPN的隧道模式。FortiClient客户端拨号后,访问服务器IP的流量,会通过安全隧道到达远端防火墙,并访问DMZ接口下的服务器。那如果我想让更多的访问走安全隧道,但是又不确定是哪…

最受欢迎的十个开源大数据技术

导读大数据已然成为当今最热门的技术之一,正呈爆炸式增长。每天来自全球的新项目如雨后春笋般涌现。幸运地是,开源让越来越多的项目可以直接采用大数据技术,下面就来盘点最受欢迎的十大开源的大数据技术。 大数据已然成为当今最热门的技术之…

热烈庆祝兴业法拍网与中关村科技融资担保有限公司签订业务合作

6月1日,兴业法拍网与北京中关村科技融资担保有限公司签订“法拍贷”合作协议。 “法拍贷”是以法院房产拍卖为核心、线上平台拓宽拍卖渠道、保险公司提供阶段性保证、公证机构加大司法效力、银行提供全程金融服务的“14”创新合作模式。该模式汇聚五方合力让更多竞…

在本地Windows 11 系统的桌面版Docker上搭建PlantUML

文章目录 在本地Windows系统的桌面版Docker上搭建PlantUML简介步骤步骤 1:安装Docker Desktop步骤 2:启动Docker Desktop步骤 3:拉取PlantUML镜像步骤 4:运行PlantUML容器步骤 5:访问PlantUML Web界面 结论参考资料 结…

stable-diffusion-webui 更换 Python 版本

目录 一、原因二、解决方法 一、原因 stable-diffusion-webui 推荐版本是 Python 3.10 ,如果电脑中安装了其他版本到Python,会警告推荐使用Python 3.10版本。 官方安装教程 Automatic Installation on Windows Install Python 3.10.6 (Newer version of…

OBS如何做绿幕直播(滤镜实现去除绿色背景)

OBS如何做绿幕直播(滤镜实现去除绿色背景) 一、设备 推流电脑(i7及以上,16G内存,独显加分)不推荐笔记本和苹果电脑。摄像头(单反或摄像机需要配备采集卡和收音设备)。补光灯。稳定…

k8s概述

前言 通过linux基于cgroup,ns,及rootfs的学习,我们了解了基于容器技术原理。在大规模情况下,单单容器技术完全不够,k8s的出现就是解决 在大规模集群中存在各种各样的任务,任务之间又有着各样的关系。对于这些关系要如何处理优雅得…

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序 介绍 在本课中,我们将建造一座简单的城堡。您将了解有关对齐工具、镜像和帮助程序工具的所有信息。 开始 您将使用的第一个工具是对齐工具。 无需使用鼠标仔细定位两个部分,对齐工具…

团队管理之性能实施团队日志6

一、从问题统计看进度风险 从统计来看,近三个星期过去 了,发现了 59 个问题。28 个是性能问题还需要再细分类型,现在这个还是粗了点,比如说配置问题、代码问题。 所以笼统说来除了这里的功能问题之外,其他的基本上都是…

对话中科易安市场经理:联网智能门锁之运行、运营与运维

大家好!我是中科易安市场部的市场经理,相信很多中科易安联网智能门锁的新老朋友对我并不陌生,或许我们没有面见,但是每一篇中科易安发布的原创推文皆出自我手。此刻,我想和中科易安的产品用户、客户以及媒体朋友们&…

weblogic 重置密码|修改密码

一:重置密码: 我本机的文件目录: /u01/wls12214/Middleware/user_projects/domains/wls_domain/ 第一步删除: DefaultAuthenticatorlnit.ldift (先对此文件备份,防止后续异常可复原) 删除此文件…

使用Leangoo领歌敏捷工具实施多团队规模化敏捷

多团队大规模敏捷的场景定义: 多个敏捷团队开发同一个大型产品,几十人,甚至几百人开发一个产品或解决方案。 在Leangoo领歌中创建多团队大规模敏捷项目: 多团队规模化敏捷的项目结构: 在Leangoo企业中创建项目&…