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

写在最前

如果这个项目让你有所收获,记得 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://xiahunao.cn/news/350724.html

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

相关文章

5年软件测试工程师工作感悟,谁还能“点点点”一辈子呢?

经常都有人问我软件测试前景怎么样,每年也都帮助很多朋友做职业分析和学习规划,也很欣慰能够通过自己的努力帮到一些人进入到大厂。 2023年软件测试行业的发展现状以及未来的前景趋势 最近很多测试人在找工作的时候,明显的会发现功能测试很…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类(了解)DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的? 二、自定义加密自定义方式一:使用{id}的形式自定义方式二:向S…

花3个月面过阿里测开岗,拿个25K不过分吧?

计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是在一家初创…

Excel集成GPT,惊呆我了

Excel&GPT 从最开始的GPT对话,到后面的Office集成GPT进行内测,用GPT实现写Word、做Excel、做PPT(别着急,后面我会分享AIPPT)已经不再是设想,而在逐步演变成真的! 当然,目前国内…

impala内存超限

目录 一、背景 二、报错内容 三、解决办法 1.调参 2.简单粗暴 一、背景 impala shell执行SQL语句时报错 二、报错内容 Memory limit exceeded: Could not allocate memory while trying to increase reservation. 三、解决办法 1.调参 mem_limit参数:&…

2023,智能硬件的AIGC“又一春”

​ 文|智能相对论 作者|佘凯文 消费电子产品风光不再,特别是自去年以来,电子消费市场经历了一整年的寒潮袭击,智能手机等产品达到10年消费谷底,PC出货量整体下降16%,不仅如此,包括平板、可穿戴设备也一改…

Java读取U盘的PID、VID、SN

Java是不能像C、C那样直接读取U盘的PID、VID、SN信息的,但是我们可以换一个思路,让Java从注册表中读取信息。 这是U盘信息在注册表中的位置:HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\USBSTOR\\Enum import java.io.Buffer…

02_搭建项目(servlet+java bean+jsp的商城教程)

搭建项目 数据库和表项目包结构jar包工具类和配置文件前台文件(html,css,js,img等静态资源) 1)数据库和表 新建数据库store,按照上一节分析的实体结构创建数据表并插入数据: user表: CREATE TABLE user …

org.apache.jasper.JasperException: Unable to compile class for JSP

博主最近在将一个项目导入一台新机器的时候,出现了如题所述的异常,以前从没有出现过,我跟往常一样到网上寻求帮助,网上的解决方案多如牛毛,什么Tomcat版本与IDE不匹配、jar包冲突、xml文件错误、路径错误等等。在一一尝…

Java毕业设计:基于jsp+mysql+Spring+SpringMVC+mybatis的网络硬硬盘系統网站

项目介绍 网盘,又称网络U盘、网络硬盘,是一些网络公司推出的在线存储服务。向用户提供文件的存储、访问、备份、共享等文件管理功能,使用起来十分方便。不花钱的移动硬盘。用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是…

基于jsp+mysql+ssm网络硬硬盘系統网站-计算机毕业设计

项目介绍 网盘,又称网络U盘、网络硬盘,是一些网络公司推出的在线存储服务。向用户提供文件的存储、访问、备份、共享等文件管理功能,使用起来十分方便。不花钱的移动硬盘。用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是…

supermicro服务器通过U盘安装部署vmware vsphere并使用

制作U盘安装镜像 前提准备: 镜像: https://my.vmware.com/en/web/vmware/evalcenter?pfree-esxi6 直接到官网下载 VMware vSphere Hypervisor 6.7,不过要先注册才能用。另外这个是免费版的,有验证码,可以长期使用…

linux redhat9 u盘,LINUX(redhat9)下安装JDK(虚拟机VM上挂载U盘)

LINUX(redhat9)下安装JDK(虚拟机VM上挂载U盘) 2010-07-11 21:24 1.首先,我们去http://www.doczj.com/doc/11c2bbedb8f67c1cfad6b82a.html去下载JDK1.6.0 for LINUX的rpm. (http://www.doczj.com/doc/11c2bbedb8f67c1cfad6b82a.html/javase/downloads/index.jsp) 应该…

Ubuntu的JSP服务器安装

2019独角兽企业重金招聘Python工程师标准>>> 一、man中文版 1、安装:sudo apt-get install manpages-zh 2、把中文man包转换成utf8格式的 新建一个脚本文件gedit t.sh把下面内容添加进去#!/bin/bash cd /usr/share/man/zh_CN/ for k in *do cd $k for i …

JSP环境配置全解!

实现JSP文件环境配置除了MyEclipse外,最通俗的还是jdk加Tomcat。 今天上午刚把期末考试搞定,就紧迫不及待的在李超和超哥的指导下完成了JSP环境配置。以后要专心搞JAVA了,呵呵。。。 为了让我以后可以快速的独立配置环境…

关于电脑格式化之后的恢复

前言:在这里并没有用OneDrive备份的文件,为了极致的纯净,但是为了恢复基础资源的速度,建议用U盘或者百度云把TomCat和javeEE的文件夹上传一下,省的后面网站下的太慢 1.格式化电脑 桌面右键——》显示设置——》Window…

亚马逊云科技出海日倒计时,潮向新世界,亮点抢先知

数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从传统制造业“中国产品”出口,向创新“中国技术”和先导“中国品牌”的逐步升级。 作为全球云计算的开创者与引领者,亚马逊云科技…

使用jsp完成商品列表的动态显示

1数据库准备工作 1创建数据库 2 创建product表 代码如下: CREATE TABLE product (pid varchar(50) NOT NULL,pname varchar(50) DEFAULT NULL,market_price double DEFAULT NULL,shop_price double DEFAULT NULL,pimage varchar(200) DEFAULT NULL,pdate date DEFAU…

基于JSP的网络硬盘

1 可行性分析 web开发技术是Internet应用的一个重要方而,而JSP又是web开发的最先进的技术,是当前web开发人员的首选技术。 随着网络技术的日益普及和信息化建设的重视,网络硬盘是一种新型安全的网络存储系统,已越来越受到.人们的重…

JavaWeb之动态页面技术jsp显示商品列表

一、新建商品数据库 CREATE TABLE product (pid varchar(50) NOT NULL,pname varchar(50) DEFAULT NULL,market_price double DEFAULT NULL,shop_price double DEFAULT NULL,pimage varchar(200) DEFAULT NULL,pdate date DEFAULT NULL,is_hot int(11) DEFAULT NULL,pdesc varc…