00:00
各位同学大家好,刚才呢,咱们完成了GWT的整合,那下面呢,我们继续实现权限管理中的两个重要接口,一个用户登录,一个获取信息。咱们先来实现用户登录,那实现之前呢,我们先解决这么一个小问题,什么问题呢?大家看我数据库里边的一个用户表里边,我们看里边的这个字段,就是它的密码字段,大家看啊里边那个数据,我们看里边有这么一个小问题。首先各位注意啊,就是我们家的数据是不是叫太子的,然后你看他之前的密码是不是长这个样子呀,这个密码其实是进行了M第五加密,所以咱们要把添加之后的密码也进行加密,咱不能存这个铭文的密码,那咱们把这个给它改一下。咱们找到添加用户的接口。我们来找一下。
01:01
在里边system user control,然后找到添加方法,就是在我们的这个位置,然后咱们给他做一个修改,我这里写一下把。输入的密码进行加密。我们进行MD5的这么一个加密。那怎么做?给各位写一下啊,首先我们还是在common u里边,咱们加上MD5这个工具类,这个工具类我在资料中给大家已经听出来了,咱们把它直接复制过来,就是一个简单的工具类。我们直接拿过来。然后大家看里边有一个静态方法,咱调它传字符串能进加密,那这里边我们给它做个修改,咱们写一下MD5。里边的这个方法。然后传入用户的这个密码。
02:05
user.get password,我们进行这么一个加密,然后加密之后把它是不是在放回到user里面去,因为咱要传入加密之后的这个密码,那我们来写一下set password,然后传入这个值。以上就是一个添加用户接口的修改,这各位要明确,咱们存的密码肯定不能存,名为要进行加密之后进行存储。这个改完之后呢,下面我们继续改这个用户登录的接口,咱们来到index ctrl里边找到第一个就是用户登录接口,那咱们把这个来改一下,首先第一个登录嘛,在里边肯定要传入我们这个参数,那我们加上一个request body,然后这里边我们有一个VO的这么一个对象。然后写一下啊,它叫捞。
03:03
无忧。咱们看一下啊,这个类。在里边有用户名称密码这个信息,所以咱通过它得到数据,然后得到之后我们继续往下来做,在下面呢,咱们怎么做呢?因为它里边啊,是不是有那个用户名称,给各位写下这个步骤啊,那第一步根据这个用户名称去查询数据库,看这数据到底有没有,这是第一部分,然后第二个咱做个判断,如果说啊查询数据为空,那表示肯定就没有这个用户,在跟用户一个提示,然后下一个咱再判断密码是否一致,就如果说你查出来,那我们判断数据库中存的密码跟你输入的密码是否一样。然后之后我们再做个判断,判断当前这个用户是否可用,因为用户可能被禁用,这要做个判断,最后我们做什么呢?那咱就是根据我这个用户的ID,还有用户名称,我们生成一个token的字符串,最终通过map我们进行返回。
04:17
以上就是一个基本过程,那下面呢,按照步骤,咱们把这个代码我们快速实现一下,咱们来写一下。首先我们看第一个。根据用户名称我们做个查询,那我们直接调用方法,咱进行实现,咱们看一下啊,这是CTRL里边咱们注入那个用户的service。我们做一个注入。Private system。User。Service。把这个先注进来。然后住之后我们调用里边的方法,根据用户名称进行查询,咱们写一下这个方法,我们给他写一下啊,就叫get这个。
05:03
User。Ino。根据用户名称。然后在里边传入我们这个用户名称,就是get user name,最终呢,让他返回的肯定是一个对象,因用户名称肯定是唯一的。System user,现在咱们把这个方法完成,完成之后这个在service里边我们先做一个创建。把这个创建出来,根据用户名称进行查询,然后创建之后咱们来到它的实现类中,把这方法我们快速做个实现,就是一个根据用户名称查询的方法,咱们写一下啊。首先加上。Quarry。色。然后起个名字rapper,等于new上一个quary rapper,这是写的第一部分,起完之后rapper里边的设置,它的这个参数,咱们就是username,传入用户名,最后调方法返回它的结果,咱直接调用base map中的方法,因为用户名称是唯一的,所以咱就没必要用这个list,我们用set y就可以了,传入rapper,这样的话这方法就完成了,这各位要特别熟练啊,咱之前写了太多遍了,根据用户名称做一个简单的挑选查询。
06:39
然后这个之后,我们的第二部分,咱们做一个判断,我这里写一下。如果说你查出来的用户对象等于,那那就表示呢,在我们数据库表里边没有这个就是用户,那咱直接给他就抛出一个异常,我写一下硅谷EXCEPTION20001,然后其实用户说这个用户。
07:04
不存在。这个完成完成之后,下一步操作,咱判断一下密码是否正确,那我这里写一下啊密码。首先我们这个system user里边取到这个密码,再跟我们就是输入的密码做个比对,咱输入密码从log印VO中可以取到,这里边有密码,但是这里边有一个问题啊,咱们输入的密码肯定是不可能加密的,只有传到数据库中,什么加?因为不可能输入一个加密密码,就是你不可能把这个数只能输入T这种值,所以咱们怎么做把,就是输入密码加密之后跟数据库中再做一个比对,那这里边我来快速写一下啊,MD5。点上这个方法,传入这个password。最终得到就是加密之后的这个密码。
08:03
咱们叫MD5。Password,然后把这两个做一个比较。这是我们写到的啊,如果说啊他们不一样,那就表示密码不对,密码不对的话,那咱们也是抛出一个异常,其实用户说这个密码不正确。这是我们写的第二个判断,把数据库中密码跟我们输入密码进行比对,只输入密码需要做一个MD5加密,注意这个不要写错,然后下一个就是判断当前用户状态是否可用,咱们快速写下,加上一个if。然后在里边呢,我们用对象中的方法叫get thes,咱们看表里边啊,有这么一个状态,也就是这个一是正常零是停用,那咱来判断,比如说加上一个int y6,如果说这个值等于零,那表示用户已经被禁用掉了,他肯定是不能用的,咱们也是抛出一个异常是这个用户。
09:12
已经被禁用啊,请联系关系员等等,我就做一个订单提示,所以现在这部分就都完成了,完成之后呢,我们最后那就是返回数据,咱们根据用户ID和用户名称生成token字符串,这个工具类咱们刚才刚写过,我就直接调用一下了。Jt helper里边有个方法,传入用户ID,还有用户名称。咱们传一下啊,就是get ID。然后再传入用户名称,最终返回的肯定是一个token的这么一个字符串,所以现在这个就完成,完成之后呢,还是我们之前有一个遗留问题,就是它那个ID的类型问题啊,这里边是死缀,其实我也可以给它都改成这个纸啊,当然我们刚才工具类中写的应该是一个浪类型,咱都给它改成死润就可以了啊,这里边啊,我给它快速改一下啊。
10:18
工具类中咱们改一下。就是我们的这个位置,这里改成string。然后下面啊,我们看这位置啊,给他也都改一下啊,我们看这里边。这个位置string。这里都改一下啊,然后再回到这里边来。咱们看一下啊。现在这个应该正确了,然后正确之后,最后咱们把这个token字符串做一个返回以上我们就完成了登录接口的改造,根据用户名查数据库,然后返回用户信息,把ID和名称放到to字符串中,最终返回,所以这时候我们写到。
11:12
用户登录的接口。
我来说两句