00:01
各位同学大家好,刚才呢,咱们修改了用户登录的接口,根据用户名称我们进行查询,然后最终得到用户信息,包括做了判断,最终返回to字符串,那下面呢,我们来修改第二个接口,就是登录之后获取用户信息接口,也就是我们看到的这个in for这接口,那下面咱把这个接口做改造。首先给大家先做过分析,咱们之前曾经提到,我们是这么一种思路,咱们生成token字母串,然后生成之后怎么做呢?各位看最后一句话。每次咱们请求把头N字符串放到请求头里边,通过它进行传递,因为放到头里边它不存在跨越,每个请求都会有头信息,所以我们怎么做呢?咱又可以从请求头里边获取token字符串,然后从ton字符串中获取ID或者获取名称,根据ID或者名称得到用户这个相关的菜单或者说按钮的操作权限,那下面咱们把这个来写一下,给各位先写一下这个基本的步骤。
01:17
我写到这里。首先第一步咱们获取请求头里边那个token字符串,这是第一步,然后第二步呢,我们从这个token字符串里边获取一下你的用户名称,或者说获取用户ID也可以,咱就获取用户名称了,然后获取名称之后,我们里边的第三步,那我们做法就是。根据这个用户名称获取到用户的信息,这个信息中呢,包含它的基本信息,另外还包含针对菜单这个操作的权限数据,以及对这个按钮操作的权限的数据,所以咱们要做这个事情,然后最终把这数据通过map咱们进行返回。以上是我们写的一个基本结构,那下面呢,咱们把它最终来写一下。
02:18
首先我们看第一步。从请求头里边得到数据,那怎么得到呢?因为有请求嘛,所以在参数里边我们加一个参数http request,咱们起个名字就叫request,我们这里边通过request得到它的请求头就是get。它的名字我们就叫token,后面我们再改那个前端。这就是第一部分。得到请求头里边的to k字符串。然后这个之后呢,我们第二部分,咱们通过JWT,我们之前写的工具类,然后从token字符串中得到我们的用户名称。
03:06
我们来获取一下username,这就是我们的第二步操作。得到之后,我们的第三步操作,咱们调用service中的方法,根据用户名称得到我们的用户信息。这个方法咱们需要单独再写一个,就不能用刚才这个方法了,我们就叫get user info。传入刚才取到的user name。然后最终呢,让他咱就返回一个map集合。最后把map集合。我们进行对。以上就是CTRL编写,咱们再看一遍啊,然后开始写service。第一步,得到,请用同中的token字符串。第二步,Token中得到用户名。第三步,根据用户名查数据库,得到基本信息菜单按钮的权限数据,最后把map进行返回。
04:08
以上是咱们完成的,就是这么一个相关的C部分,完成之后,下面呢,我们在service里边把这个方法我们进行创建。咱们创建出来,创建之后呢,最后来到实现类中,最终实现下这个方法。那咱们开始实现,因为这个过程中呢,涉及到你的菜单权限,还有按钮权限,所以咱们在最上边把那个菜单的service,我们给它注入进来,为了后面我们查询使用。我来做个注入。System service。把这个注入,然后在里边我们开始写这个方法,那这方法怎么做,给各位来写一下啊,首先我们里边的第一部分,因为最终咱是反一个外部集合。
05:05
而map集合中有很多的数据,那我这么来做啊,我先把这个map集合先写出来,因为最终咱是通过它进行返回,咱们创建一个map,加上词缀。Object,然后加上一个叫result,等于上一个哈希map,向map中来放它的数据,咱通过put往里面放,首先我们第一个,那咱就放那个用户的名称,咱们加上一个name,就是这个username。这是第一个,然后第二个呢,我们造的里边加上一个put,咱第二个呢,还是放我们之前有一个那个头像,这给它也放进来,为了我们最终就是在这个位置进行显示。这个我直接复制一下,就这个头像。
06:01
把这个咱们拿过来。这是头像。然后这个之后我们继续来写。啊,在这里继续来做点put,然后第三个咱们放什么呢?其实之前那里边啊,有一个叫Rose这个角色,但是这个呢,其实我们没有用到,咱给他演是返回下。Rose。然后里边的值,咱就给他这边写一个值。我们看之前写的就是这个啊,那咱们还是写这个。呃,直接返回一个值。这个admit这个叫角色啊,但是其实我们没有用到,然后之后呢,下面是两个最重要的,一个是我们这个菜单的权限数据,另外一个是你的按钮的权限数据。咱们把它做个返回,首先我们先写这个菜单的,咱们加上一个result.put然后这个菜单的呢,我们看它的名字,咱就跟课件中保持一致了,我们看课件中的名字,我叫routes就是菜单。
07:13
或者说陆游。那这里边我们加上我们的数据,这个咱们一会儿来写啊,我先来一个,那一会儿咱给它完善出来,另外还有一个按钮的。我写到这里。Put按钮呢,我们就叫这个buttons。然后按钮我也先来个呢,一会儿咱来完善,最终把这个result的map集合我们做一个退,这是我们写的一个基本结构,然后写完之后,我们上面写它的具体查询部分再来实现。首先第一个咱们先根据用户名称查询出用户的这个基本的信息,咱们来查一下啊,这个方法咱们刚才刚写过,有这么一个方法,Get user by username,最终得到的是我们这个用户的对象,就是system user,这步已经实现。
08:12
然后第二步操作,咱可以根据我们的用坏地查询他这个就是菜单的。限值。然后再根据用户ID。查询它那个按钮的这个权限值。那咱们可以查一下啊,首先我们调的是menu中的方法,肯定是在这里边写了menu,刚才已经注了,那第一个方法我们写一下,给它起个名字,我们就叫这个get user啊,这个菜单咱叫menu。例子,传入用户ID。Get ID最终返回一个历史集合。咱们叫这个啊,先来一个例子,一会咱再改啊。
09:04
然后例中呢,加上一个泛型,我这里边有一个写好的view类,它叫router view。这个名字我也叫这个。咱们来看一下这个V类啊,里边就是菜单相关的相关内容,所以咱们把这个我们给他查询,后面我们再写这个方法。然后之后呢,下面跟这就一样了,咱们还是这个里边的方法,我们给它起个名字叫get这个按钮。这个例子传入用户的ID。最终返回到也是一个list集合,这个集合普从课件中就直接复制一下,咱就返回这个集合,把所有就是按钮那个菜单的ID给它,最终返回就是一个菜单一个按钮啊,把两个相关的选项ID都给他返回。
10:08
然后之后最后把这两个集合写到这里边,一个是菜单的,一个是按钮的。现在这部分我们就完成了,完成之后呢,最后我们在里边把这两个方法进行创建。第一个方法。根据用户ID查询菜单的权限值。这里边一会儿咱们做个实现。然后再来看第二个方法。根据用户ID查询按钮的这个权限值。同样咱们快速做个创建。所以大家看啊,目前我们在这个部分我们完了,然后在system user我们完成了。
11:05
最后缺少的就是在菜单里边,根据用户ID查询菜单权限值以及查询按钮的圈值,那咱们这两方法一会儿我们进行实现。
我来说两句