00:00
就是现在呢,前端后端都整合完成了,然后咱下面把这项目都给他提起来,咱最终做个测试,然后首先啊,先启动我们这个前端的这个项目,把这个火箭启动。启动一下啊,就是。NPRUDV啊,但是启动过程中可能会报错,咱根据错误再找到它是哪里启的不对啊,如果没有错误,咱启动后端接口,然后再看它的效果啊。这些囧起来。然后启动啊,它先启动着,咱为了明显,我先把表那些数据先删掉,为了咱更加明显啊,就是这个表叫角色菜单表先为空,然后有一个用户角色表以为空啊,这都删掉了,然后用户里边,目前我们是这么一个用户,咱们看一下啊,有一个叫我的in,我的in呢是一个管理员这个用户,我特别强调一下啊,就是咱们一般来讲,在一个后台系统中会有一个叫超级管理员的角色,这管理员角色他能有所有操作权限,所以咱一般可以用个root或者用din,而我们这个项目中,我们是用din作为一个超级管理员,就是他不需要授权,能访问所有权限,包括我们在代码中也做了处理,就是针对他做不同的操作。
01:18
啊,比如说啊,我们可以大概看一下啊,关于这个管理员。这里边应该我们都做了不同的判断。啊,咱找个地方啊。大概找一下。啊,就是这个地方你看啊,都做了管理员的判断,就是他是否是这个额的密,如果是管理员,那我们就查询所有,如果不是管理员,那根据你的当前用户看权限,就是每个里边都做了管理员的判断,所以咱们一会儿先用我的mean登录,就是超级管理员登录,然后登录之后我们再加用户,加角色加权限,然后用你加完之后的东西再做登录啊就是咱们一个来试啊。大家看啊,现在启动这没有错了,是正常启动了,就明咱刚才整合应该没有出现什么问题啊,有问题咱再调试,然后这个启动之后,咱下面请用我们的接口,接口中的我们现在。
02:09
启动这么几个东西啊,第一个na必须要启动啊,这是必须的啊,但是NAS中啊有一个特点希望各位注意一下啊,虽然这个没有问题,但是咱们也注意一下什么问题呢?你看里边有个地方啊。你看这是什么字?咱是不是看不懂啊,其实是个乱码,为什么乱码呢?因为我现在啊,我这个NAS是给它放到了一个中文目录下,就是我放的是一个中文,你看我是放这里边是不是有源码,是它写就是这个源码,但是咱们实际中一般来讲这种软件放的位置最好都不要有中文,有中文它可能也没有错,但是有中文的时候它就会这个问题啊,因为它默认都不是中文,所以咱最好把这软件都不放到在中文目录中,省得避免很多那种不必要的问题啊,在这个各位都注意一下啊,但是你放到中文它也没有错,也能进行操作,只是它显示中你会发现啊,特别难受,明明是源码,非要选一个咱不认识的东西。
03:07
啊,这些各位注意一下啊,然后这个启用之后,下面咱启动我们的接口,先启用这个A片,再启用这个al啊,那我给他重新启动啊,我先找到API,就咱的网关。这个重新打开啊,就是里边的这个把它先启动。然后因为咱的网关呢,他要通过那个NAS找到里边配置的各种服务,我这边没配置那么多啊,咱就主要演那个权限,各位可以把其他模块都配置进去,比如说讲师课程,分类课程啊,配置方式咱都说过了,然后这过程中你不需要在那个CTRL上边加那个跨域注解啊,咱也都提到了啊,不再重复了啊,这个网关启动了,然后启动之后我再把这个acl启动,因为咱要做权限嘛,这个启动啊。注意,里面这注解不能少啊,Na com sc包这个map sc等等都需要给它加上。
04:05
咱等他行起来啊。等它启动啊。啊,这个启动了啊,所以现在我们启动了API,还有这个acl在API这个就是为网关中ACI这个规则,我们应该也都做了配置。咱看一下啊acl。我们应该配置过了。然后acl中呢,我那个CTRL规则。都是这个规则,叫我的mean SL什么什么内容啊,所以里边加一个杠星号al杠星星这么一个配置啊,然后这个做到之后,咱下面来到我们的项目中,咱最终测试一个登录,看他能不能登进去,我们做一个测试啊,然后把这个L12打开,有问题咱也方便找到。比如说现在我用一个超级管理员,就是我d me。然后他的密码应该是这个,呃,这密码应该是六个一啊,就是他做了一个M第五加密。
05:05
包括跟我们之前那个用户一样啊,都是六一,那我现在登录。咱们输入六一之后点登录,大家看它的效果啊,我们看它能不能登进去。咱看到目前是不是登进来了,那就证明咱这个这个整合过程就生效了,如果你不生效,它可能登不进去,会报各种错误,但是目前按照流程咱们就完成这个整合啊,这个就登进去了,然后这个登录之后呢,下面呢,证明我们这个整合是对的,下面给大家演示一下,这个就是刚才我们写的这么多类。刚才看到有这么多类,它的执行过程是怎么样的,把这过程我用debug方式给大家来演示一下啊,要各位知道它这个流程啊,包括咱刚才说他这个理论的实验的过程,咱现在说这个代码的这行流程啊,我来做一个演示。
06:01
咱看一下啊,一会我可以再做分析,那里边怎么演示呢?这个我先给它退出去啊,因为这里边我们也写了退出功能啊,只加了DE8UG啊,这debug啊,就是你调试中可以给它去掉啊,我这是没有去,当时我测试时用的。实现。直接先退出去啊。然后退出之后咱怎么做呢?我现在把这个AC先给它关掉,然后咱用d bug方式把它揪起来,咱通过底bug断点调试,看一下它的流程怎么样啊,就是咱们做整合,主要讲它的流程,因为过程就是你复制个代码就可以做到,但是过程它是怎么执行的,一定要掌握。那我先启动啊。就是比bug方式,先给他行起来。现在启动了啊,然后启动之后下面我来加断点,就是我怎么加啊,第一个呢,我先在这个token low in the,因为这个是咱说那个。登录或者说认证的这个过滤器,那在里边,比如说我现在啊,在它的这个方案里边先加个断点,这方法刚才说到过,它就表示能得到你输入的用户名和密码啊,这是一个方法,然后咱看这个方法中加入断点,这方法什么意思呢?它就是登录成功之后要这个方法,然后这是登录失败啊,咱就是登录成功了,然后这个在登录过程中呢,他会查我们的数据库,而查数据库的时候呢,他就会去调里边的这里面的方法,嗯,刚才说这个user detail t这个方法,那我在里边也加上一个断点啊,这是一部分。
07:36
然后这个交完之后,咱再在他那个认证的过滤器啊,因为这是认证加上还有一个叫授权啊,在授权里边我们给他也是加个断点,所以这样的话,咱就能演示出它里边这个基本的过程啊,那咱下面做个测试啊,当然第一次我们测试啊,他可能会抽时咱们多八个底次,效果应该就能出来啊。咱们最终测试啊,你看我现在啊,我再说一遍,在我们的登录过滤器中加了一个断点,这是表示得到用户密码,然后这是登录成功,这是我们查数据库的那个类,然后这是你做授权,就是从里边取数据,最终看他有没有权限啊,主要这么一个断点,那咱们加上之后,下面咱再测试。
08:20
我还是登录我的密,密码是六个一。然后下面点登录。咱看啊,我一点登录,各位看啊,首先它就进入到什么地方,是不是这个token log in,这个filter是咱这个认证或者说登录过去,然后在里边怎么做到的,大家看啊,在里边的做法就是得到你当时就是请求过来的用户名和密码,把这得到,比如现在我们点这个或者F8往下执行,大家看这个user侧里边,你注意看啊,往这里看或者上面都可以,User侧里边是不是有我的in和六个一,是不是就是咱们的用密码他就得到了,然后得到之后咱给他做个return。
09:04
让他再到哪里?到什么地方,是不是这个user detail,就是咱们写那个查询这个类,到里边要查单数据库,然后往下执行啊,咱给它执行。一步步就是查询你这个用户和他的权限,然后查完之后放到咱那个叫user中,这是我们需要的那个对象,然后给他返回,返回之后大家看到哪里,是不是到咱这个成功的,就是登录成功这个方案中,然后在里边怎么做,咱先在里边根据这个用户名生成你的token这个字符串,然后生成之后把这些个用户名称和你的权限值放到咱的ready中啊主要做这过程啊,就是现在它超时了啊,那这里边哈。啊,过来了啊,这是token值,然后给它放到我们的red中啊,这一步是放到red,这是生物token,最终给它做返回,然后返回之后他再做这个就是认证啊,就是授权,包括看他有没有权限就进行操作啊,主要是这么一个基本过程啊,所以咱刚才把这个做一个测试,但是这里边还有一个特点啊,你在操作过程中,你的red服务器,比如是一个启动状态,因为它要操作red,因为咱们刚才就是这个步骤中已经向ready中放了数据啊,就这里边,那咱们看ready中的值有没有。
10:27
啊,咱们看一下啊。我们来连一下这。里边来一个叫key星号,大家看啊,里边多了一个。是做这个DMI嘛,是咱的用户名嘛,因为咱用户名是啥的key,那比如来一个getdin,看里边的值,这个值就是你这个用户所具有的这些权限,在里边做了一个存储啊,所以这样的话,Red做成数据,然后再往下操作都是交给spring so做到了它就从re中把值取到,然后给用户复制这个权限,咱就可以做到这个登录。
11:04
啊,主要这个流程啊,那我们继续试一下,因为刚才是超时了,再重新啊,再登录啊。呃,我先刷新。然后现在啊,比如说我再点一个me。密码是六个一。点登录,登录之后呢,首先到这里边获取,然后往下就是查询,查询之后做这成功,然后成功之后大家看到这里。这什么地方token这个author是不是咱做那个授权里边授权中它就是从里边取到,就从hier中取到你的token值,然后得到数据,最终看你的用户有没有这个权限,有权限然后做操作,然后这里边啊,通过这个步骤最终登录就可以做到,所以这个是咱们这个代码的一个运行流程,给大家做了演示。啊,然后过程我再说一遍啊,给大家在图上把流程再来画一下啊,希望各位把这个给他要知道啊,就是代码是怎么执行的。
12:06
那我画这张图上啊。就是权限管理啊,包括整合这个。它这个代码的执行过程啊,那咱们来画一下啊,就是首先里边的。第一步啊,咱先退出去啊,第一步哎,我这刚才关了啊,就是第一步呢,我们肯定是在我们的这个页面。先输入你的用户密码啊,因为刚才那个服务我给它关掉了啊,先输入你的用户名和密码。我小的位置啊。第一步先输入用户密码,然后输入之后,当我们一点登录,它会怎么做呢?它就进入到我们那个这个登录过滤器,或者说认证过滤器。啊,就进入到。我们这个认证的过滤器里边,而在认证过滤器中,首先咱刚才测到了先进入到是里边的这个方法。
13:05
这个他会记住啊,就是它叫accept author这个方法。这是它里边的这步骤进入到这里啊,然后在这方法中要做什么事情呢?咱刚才看到了,它就是首先第一个获取到你输入的用户名和密码来做这个事情啊,这是我们做的这个事情啊,然后这个就是获取之后,下面他要怎么做呢?咱就往下执行,刚才底爸爸看到了,当获取之后,下一步是不是要咱们自己写这个查询这个类的。因为咱们实验接口嘛,所以他要调这个类。我写一下这个步骤啊,就是先到我们这个方法中,在方法里边呢,得到用名和密码,然后得到之后他去执行这个类,在这类中他要干什么呢?就是根据你的用户名查询这个用户信息,还有这个用户他所具有的那个权限,或者说他可以操作的菜单,然后把这些信息通过这个那个对象给他做一个返回。
14:13
啊,对象给他返回,所以在里边我们下一步要做这个事情,那我们看一下代码中,就是到这个类中,在这类里边你看啊,根据用户名查询他的信息,然后还有他的全信息,把这信息最终用b us放到so中的这个对象中,然后把这个so这个对象给它,最终做个返回,啊这是我们的这个步骤。然后这步做到之后,咱们继续往下来看啊,就是下面怎么做呢。往下直行。就是现在如果说啊,就是你这个能够查出数据,或者说你这个认证成功,也就是说用户名密码正确,学员信息都能查到,那会怎么做呢?他就会执行咱们这个还是认证过滤器中等。
15:01
这个方法。这个方法叫successful,这个author啊,会执行这个方法。我写一下啊,就是咱们这个认证过滤器中这个。成功的方法,把这个方法会做执行,而在这个方法中我们要做什么事情的,大家看代码中我们的做法就是得到你的用户信息,就是刚才咱们传过来的。这个信息把它得到,然后得到之后根据里边的用户名生成一个token值,并且把你的用户名和这个查出来那个权限信息放到red中,最终把token做个返回,就是来做这个事情啊,这咱们看到每个代码应该写的很清晰,得到对象,得到你的生成token,然后把用户名和权信息放到read中,最终把token做个返回。里边啊,就是做这个事情。然后写一下啊,第一个获取返回的那个就是。
16:01
对象啊,第一个第二个根据对象里边的用户名生成一个token,然后第三个把我们的用户名和你的这个。权限的信息放到这个write里边去,然后最后返回咱们生成的那个token。这个啊是做的这步,当认证成功之后做这步啊,当然你认证失败,他肯定会调里边的这个方法啊,就是认证失败,然后反映你的错误信息,认证成功到这一步操作,然后认证成功之后,下一步怎么做呢?他就要做一个叫授权,就是来到咱们的授权过滤器中,然后它里边做这个操作。这给大家啊,接过来就是最后一步,当认证成功之后,里边值也取到了这个token,它也可以做一个返回,然后最后做的事情就是到了最后一步。给大家记住来啊,它的做法就是进入到咱们这个叫授权的过滤器,然后在授权过滤器中做什么事情呢?从这个hier里边。
17:09
获取到你的token信息啊,然后根据ton信息。啊,就根据这个。Token这个信息获取到你的用户名称,然后这里边啊,从write里边查出数据啊,根据用户名称从write中。查出数据。啊,查出数据,然后就是最后给你的这个用户做个授权。这个啊是在授权过滤器中做的,就是这个事情,比如咱们代码中写的就写这些东西,那我们来看一下啊,就这个方法,先得到图N值,然后根据ton去到里边这个用户名称,再跟用户名称从这ready中把这取出来,然后对你这个用户做个授权,主要啊就是做这个事情,所以这个完成之后,咱这登录可以做到对我的用户第一个啊,取到名字到这个认证过滤器,然后在里边再调你的这个查询方法,得到用户信息和你的权益信息,然后得到之后认证成功,再去调认证过滤器中这个成功方法,做这个操作,生成token,放到red,返回token,然后最后做授权,在授权里边取到值,获取数据,最终给用户授权,咱就完成一个登录啊,所以这个是代码的一个定流程。
18:31
咱刚才就是通过抵bug方式做的就是这么一个流程。所以各位啊,把这个过程肯定要知道,就你知道我们代码每一步是怎么做的。这是关于啊,咱讲的一个流程啊。把这个图咱先保存一下啊。就是。他这个代码的一个这过程,所以咱们啊,把这个我们就点出来了,就关于这个一个整合给咱们都做到了啊。
19:01
然后做到之后呢,最后我把里面那些具体功能给大家再具体演示一下,刚才咱们只是做了登录,其实里边咱真正做的功能叫权限管理,这个咱下面来详细演示啊。那我现在把这幅我重新启动一下啊,这断点先给它都去掉啊。先都给他。拿掉啊。然后现在我重新启动啊,就在里边API和这个。AC,呃,重启一下啊。第一个这个API先启动,然后再启动al啊,但是我强调啊,就是各位在整合这个SOACL过程中,有的时候就是你整合第一次啊,可能你启动会报错,他可能就是没有编译,所以你需要把这个项目重新编译一下,然后把这服务都给它删掉,重启一下,它可能会有这个问题,就是说怎么重新编译呢?之前我说到过啊,你点build,点一个叫rebuild,这个project要重新编译,或者你把这个idea给它关掉重启啊,它也会重新编译词,然后做到之后你把API网关和你的项目重启一下啊,一般就可以了,它可能会有这个没加载过来的问题。
20:11
这个API启动了,然后acl我也做过启动,但是咱的代码肯定没有错,代码是一个固定结构。啊,这个启动最后啊,咱试一下最终这个结果啊。
我来说两句