00:00
下面呢,我们继续来实现登录的接口,刚才呢,咱把步骤给各位都写出来了,那下面呢,按照步骤我们进行具体实现,首先大家看啊,第一步获取,输入到用户名和密码,也就是说我们在登录页面中大家看到啊,这个页面我们输入用户名和密码,咱们把这两只取道,然后根据用户名查数据库再做判断,这第一部分先把它获取出来,那怎么获取呢?我在这里边呢,给大家写好了一个V类。叫log in VO,然后在log in里我们看到啊,有用户和所以通过对象给获到,这个过程中呢,我们可以加上一个块的包地啊,当然也可以不加,我就加上了,通过这一格式传递,然后进行封装,但是加包之后注意啊,这位置就不能是get提交了,因为get里边没有请求体,我们需要用post这些提交方式,这个要明确。
01:01
这个之后我们通过law in VO从里边可以获取到它的用户名,咱们根据用户名可以做一个查询,那这里边我来写一下in get username,得用户根据用户进行查询,那我们来查一下啊,查的时候呢,咱把在里边注入进来。我们用奥拓二最后注入。System user service。进行注入,调用survey中的方法咱们进行查询。那我们来调一下这个方法啊,大家注意啊,咱们登录的时候,我们要明确看一下表里边登录的时候呢,有用户名,用户名是不是肯定是不能重复的,如果用户名重复,那肯定不能登录,这个name是人的真实姓名,这个可以重复,所以咱查的话,根据用户名查询,应该只能查出一条记录,或者说查不到数据,所以咱们找个方法查询。
02:05
大家看啊,这边的方法你不需要用用list可以,但是咱们只有一条记录,所以咱们找一下这个方法,大家看啊,这个。叫什么get,它是返回一条记录get来用它行查询,然后这过程中我们需要封装条件,我写到上面啊,Lada quary。等一个在里边设置条件,加上EQ,然后加上这个system user。加上这个用户名,注意不要写错啊,Username最终把条件传进来,然后查询返回的是一个user对象,返给他返回,所以现在我们根据用户名就完成了查询,完成查询之后,咱们往下做看第三步,第三步呢,判断用户是否存在,那咱做个判断啊,如果说啊跟用户名查出的对象,它等于,那就表示呢,表里没有这个用户信息,没有的话呢,咱就直接给抛出一个异常了,硅谷,比如写一个201啊说这个用户。
03:26
不存在。这是我们写的一个判断,然后这个之后我们继续来判断,如果说啊,这个用户名的这个用户信息存在,咱们是不是要判断一下这个密码啊,看密码是否相同,比如你的用户名是Lucy,密码是123456,咱需要把密码做个判断,或者说啊,你也可以根据用户名密码直接查询,我是这么来做的啊,那咱们判断一下密码。但是密码判断的时候呢,这里边啊,有个小问题咱们需要提前解决一下啊,因为咱之前没有这么做,大家看啊,这个密码的问题,咱们先找到之前我们那个用户的接口里边,找到添加用户的接口,大家这里。
04:11
这个里边写法就是直接把数据是不是加到数据库,大家加的时候注意啊,这个密码加的时候各位都明确,密码一般是不是要进行加密处理,咱们之前的接口中这个密码好像没有加密啊,我们发现啊是不是就是没有加密,存的是铭文,就是咱能看懂的址,所以对它要做个加密,那那把它做改进,然后再完善,那怎么改进看一下啊之前的这个。添加用户里边,这里写一下,我们对这个密码进行。加密存储,那怎么加密,我们使用一个工具叫MD5的方式进行加密,因为MD5的特点就是不可逆,就是不可以解密,只能加密,通过它进行加密也是一种最常见的方式,大家看怎么做啊,我们找到我这个资料里边,在资料中有一个工具包,里边有一个MD5的工具类,咱把这工具类我就直接拿过来,或者咱们使用方便,然后工具类呢,我就放到这里。
05:22
咱们叫us。然后把MD5这个工具给它复制过来,复制之后在里边我们做个完善,然后怎么完善,从user里边先把密码给他。取出来。出来之后对密码我们进行加密,咱先写一会儿再完善啊,然后咱们加密。传入你的密码。然后就你加后码个password。MD5。然后把加密之后的密码给到user中可以了。
06:06
注意啊,不要错啊,Set password加密之后密码这样的话就完成加密,然后给它写到一行去啊,都写到一行了。所以以上啊是咱们做的一个完善,咱们再重复一遍啊,之前做添加用户,咱的密码没有加密,而我们的做法就是把输入的密码取出来,进行MD加密,加密之后再到这个对象中去,最终做添加,这样的话密码就完成加密,咱们再存到数据库中,那就是加密之后的密码。这个单调完成完成之后回到这里啊,我们进行判断,那怎么判断呢?因为我们的密码MD5加密,MD5加密的数据是不可逆的,所以咱们进行实现。那我们看它的具体做法啊,然后怎么做呢,我们写到这个位置。
07:01
首先我们从数据库里边取到这个密码,这是我们数据库中密码,然后咱再取到我们自己输入的密码,对输入密码加密之后,然后跟这个数据库的密码进行比较,我这里把注释写的详细点啊,这是数据库里边存储的这个密码,这个密码做的是MD加密的啊,就是已经加密过了。然后之后呢,我们来获取一下咱们输入的密码。输入密码,用VO get password得到个,然后把进行加密啊为区我这里个DB啊,就数据库里边的区分一下啊,然后这时我们输入的密码,我加上一个input,把这个密码我们进行加密处理。MD,五点上这个方法啊,加上我们的这个值。
08:00
我就还是写到一行去了啊。最终啊,这个我们完成,所以现在啊,两个密码都得到了注意啊,都是加密之后处理之后呢,把两密码做个比较,看它们是否一致点。Equals。Password input,如果说两个密码不一样,那表示密码数出错,咱们给它也是抛出一个异常。提示用户啊,说密码错误或者密码不正确。所以以上啊是咱们做的第四步就是密码判断,这各位要明确啊,数据库中的密码是加密过的,咱们输入的密码肯定没有加密,把我们输入的密码加密之后,再跟数据库中进行比较,看两个是否一样,如果他们不一样,那就是失败,如果他们一样,那就是成功。的这步完成,完成之后再进入到第五步,第五步呢,咱们判断一下用户是否被禁用,那我直接写一下啊,加上。
09:07
If。从user里边取它这个,如果它这个值就是等于零,表示被禁用,等于一就是可用。我加这个提示啊,一可用。零。禁用,如果他禁用的话,咱们同样抛出一个异常,其实用户说用户已经被禁用啊,什么请联系管理员。所以现在这个第五步完成,完成之后我们看第六步,如果这些呢都是正确的,都是可以的,那第六步咱就是通过刚才我们写的GT,根据用户ID和用户名称,我们生成token的字符串,那这里我们来生成一下。GWT。
10:00
Helper里边的方法可to,咱们到两个,第一个用户ID就get ID,然后第二个用户名称username,最终生成一个token的字符串,这字符串中包含咱们这些值,然后它用工具类进行了编码加密处理。生成之后,最后呢,咱把这个值进行返回,咱们还是通过部集合我加上。缀啊,加上object map,等于上一个map,向map中来这个数据就是写这个。这个是token,然后最终进行re。点OK,传入map,所以大家看到啊,以上咱们通过这个过程就把登录接口就最终完成了,我们再快速重复一遍啊,这个做法首先得到用户的就是你输入的信息,根据用户名查数据库得到对象,对象等于空,表示用户不存在,不等于空,咱们判断密码,但是密码需要进行加密处理,把之前添加用户的这个方法叫做修改,把加密之后的密码进行比较,然后再判断用户是否被禁用。
11:24
最后用GT生成token字符串,然后咱们进行返回。所以以上啊,登录的接口我们就完成。
我来说两句