00:00
好,咱们实现了接口服务之后呢,哎在准备条件差不多了,那这块呢,下面咱们要去实现用Siri实现咱们的登录认证,那这块呢,哎,咱们之前啊,这个基础使用的时候,咱们也说过啊,就想要呃实现比如说代什么加密方式代言加密这种功能啊,咱们需要自定义wrong啊,所以这块呢,哎,咱们在咱们工程中创建咱们自定义的wrong,还是进到咱们的idea当中啊,创建新的package啊,就叫run,在这下面咱们创建对应的啊咱们自己的RA类,就叫什么呢?MYRA啊创建出啊这个相关的类,直接去new一下啊咱们对应的类啊,这个创建咱们RA类,然后之后呢,哎,咱们是不是要进行个继承,对吧?哎要实现继承,诶这块呢,把这个诶继承下咱们对应的负类什么呢?Author。Authorizing是吧?哎,你说老师这不对啊,跟之前不一样啊,诶之前在咱们这个基本使用的时候,翻过去看看啊,找到咱们登录认证啊,这个相关的章节进去咱们可以看到啊,这个基本认证的时候,咱们想要创建自定义的RA,哎,去继承了谁是不是?哦,呃,咱们啊,这个sdication RA啊,咱们使用的sdication ru这个类,但是呢,现在不一样,哎,为什么呢?哎,咱们什么呢?哎看看这两个副类之间到底有没有什么关系啊,咱们确认一把,还是课件啊,往下翻,咱们先这个指定这个相关的位置啊在这,哎这个很明显副类不一样啊,这是author rising,那两个到底有什么关系呢?很简单,咱们点进去看一眼啊,是不是一目了然了,对吧?很显然咱们authorizing啊,是继承咱们原先啊继承的父类啊,在原先继承父类的基础上进行扩展啊,其实在咱们去什么呢?啊,实现相关方法的时候,各位就能看出来它俩的区别。
01:53
啊,咱们原先继承的父类呢,只实现一个就成啊,咱们的诶自定义啊,这个登录认证的方法啊,获取登录认证信息的方法啊,只实现一个接口就可以啊,但是现在呢,只实现一个方法就成啊在这儿不太一样了,咱们去看一眼,哎,咱们用快件啊去什么呢?哎,这个去实现一下相关的方法,实现方法咱们看一下这回两个。
02:17
哎,这个很明显啊,咱们的author啊,是在之前的基础上给咱们扩展了啊,它也是继承咱们原先的那个弗雷啊,在原先的基础上进行扩展,那这块呢,上面这块呢,哎,咱们暂时还用不到啊,咱们给它加注释是自定义授权方法。哎,自定义授权方法,那底下这块呢,就是自定义咱们登录认证方法啊,就是获取登录认证相关的信息啊,自定义啊登录认证方法。好,这是啊,咱们确认一下跟之前不一样的地儿,还是那句话,咱们什么呢?哎,既然要使用咱们的,哎,这个C啊,这块由他帮咱们封装好了,咱们直接用就好啊,这块呢,诶选择合适的啊,这个类进行继承,然了之后呢,咱们还需要调咱们自己写好的接口,根据用户名去查用户信息的,就在这儿,诶咱们还得auto two自动注入一下啊,咱们把那个swi注入进来。
03:25
哎,注入一下咱们的那个user service。User service注进来之后呢,咱们要根据这个service,咱们写好的接入方法去查询用户信息,那带着各位啊,咱们再把这个,呃,自定义登录认证查询登录信息的这个方法啊,咱们再去捋捋啊,这个相关的步骤是什么?先不着急敲代码,先把步骤捋清楚,第一个诶,先去获取用户身份信息啊,这是啊咱们第一步。获取啊,这个用户身份信息。
04:01
啊,咱们之前有写过,不知道各位是否还有印象啊,咱们在这个基础使用篇章里面啊,有说过第二步啊,咱们什么呢?哎,要调咱们的业务层的这个相关的接口方法啊,也就是咱们写的service的接口方法啊,要获取用户信息,这什么数据库里面存的啊,咱们要把这个持久化的数据库里面存的用户信息也取出来,来写下调用调用啊,咱们的什么业务层获取用户信息。把用户信息拿到手,哎,是在哪的数据库当中存的用户信息啊,数据库表中存的。哎,写清楚数据库里面存的用户信息拿到手啊,把这个信息都拿到手之后呢,诶,咱们之后判断一下啊,你得判断一下这个数据库里面有没有这个用户对吧?在这儿进行个判断判断,诶确定有这个信息之后,将数据进行封装,其实这块呢,诶跟之前的步骤相类似,封装之后呢,咱们直接返回就成,好在这判断。
05:15
啊,写写清楚吧,啊,咱们的非空判断。非空判断。飞空判断一下,然后之后呢,哎,将数据完成封装。哎,将数据封装返回流程啊,就是这个三个大的步骤带各位咱们去实现一下,第一个步骤不用多说咱们什么呢?是不是直接用咱们的这个传递的这个相关的参数啊,是不是获取咱们的,哎,这个用户的身份信息,然后呢,就可以对吧?啊非常简单啊,咱们直接把它点一下,诶咱们之前写过的获取咱们的这个身份信息,然后呢,哎,咱们再给它转化一下吧,啊,这个获取它的用户名啊,所以在这儿to string啊进行个转化,哎,完成咱们的name的获取啊,直接改名内用户名拿到手啊,咱们要根据这个用户名,也就是咱们啊,比如说这个前端页面啊,就输入的用户名,根据用户名咱们去查询一下用户信息,这块用到咱们的service接口方法了,刚刚写好了直接service点啊,咱们去什么呢?进行个调用get一下啊,咱们的user in for。
06:32
点根据name进行查询,好,那根据name查询出咱们的,哎这个相关的结果啊,咱们的这个名菜查,咱们就叫user的查,USER4对象查到啊,那这块呢,进行个非空校验,但凡哎咱们的USER4不为空啊,咱们是不是就可以进行获取数据进行封装了,对吧?哎,在这儿进行个判断,但凡我user不为空。但凡它不为空啊,咱们就可以什么呢进行封装,哎,咱们的哎,封装到咱们之前所说过那个in for对象里面就可以啊,哎,把它进行封装啊。
07:11
Authentication info啊,这个同样属于啊,咱们对应的这个C包下的啊,这给咱们提供了对象,咱们起名就叫info吧,哎直接什么呢?哎,这个进行一个封装,哎咱们去new一个,哎跟之前相对似啊,还是咱们的simple,哎,Simple的一个什么呢?Autthentication INF啊这个哎直接C就成C的四个参数啊不知道各位是否还有印象,但是各位再过一下,首先身份信息啊,这个token啊,咱们直接拿这个token对象获取一下,就是它获取身份信息塞进来,然后呢,这是咱们认证所需要的参数,还有什么咱们的什么呢?是不是哎这个进行加密之后的这个相关的什么的,哎,这个相关的密文对吧?啊也就是咱们的哎存到数据库里边那个密码,哎这块呢,咱们之前也确认过啊,再去看一眼啊,到数据库里面看一下,已经是加盐加密的相关的密文了,咱们获取它就成了直接userr查询完的对象,点一下诶,获取它的密码信息。
08:12
第二个参数,第三个参数,咱们说过,哎,这个加盐的信息啊,咱们得什么呢?指定一下,哎,这块还是那句话啊,咱们加密的时候用的加盐的信息是什么,这块也一定要设置成一样的啊,哎,直接设置下,哎,咱们的对应的这个加盐信息指定一下就可以。哎,指定一下咱们的加言信息啊,这块呢,哎,指定好之后,最后咱们需要指定一下我这个,诶对应的用户的这个咱们的名称啊,用户名称就是就是它咱们什么呢?获取咱们身份信息,然后呢,转成字符串就好啊这是啊,咱们把这个参数做一个封装,封装之后啊,咱们要进行个什么呢?是不是return就好,对吧?哎,Return info哎完成咱们的数据封装返回,其实这块呢,跟咱们之前写的啊,咱们的呃这个自定义的对象啊相类似啊,这块并没有太大的区别,区别就是这回我是真的去查数据库,而不是咱们写死一个数值啊,模拟数据库查询啊,这是啊,咱们明确一下,哎,咱们创建这个买RA啊,把这个买RA创建出来,好,这是啊,咱们创建好这个相关对象,还不算完啊,咱们还得去编写一下诶S相关的配置类,咱们得创建配置类才可以啊,参考课件。
09:34
继续往下,哎,这个去创建咱们的配置类,就叫什么哎,S诶,Con就成啊,咱们把这个配置类创建出来啊,直接进到咱们对应的程序当中啊,在咱们的主目录下再创建一个目录啊,New这么一个package就叫conig吧,Con目录,在这个conflict目录下,咱们去创建一下配置类,就叫S啊s conflictig啊,咱们去创建出这个con配置类,怎么表明我是配置类啊,咱们之前也写过很多了啊,在speedbo框架下想要表明我是配置类,是不是该加注解,加注解对吧?Configuration啊,加上configuration注解,然后之后呢,我还得用到咱们的my room啊这个相关的对象,所以在这儿,哎,我直接就是auto two自动注入下啊,咱们刚刚创建的这个,诶,咱们自定义的对象,把它创建出来啊,直接自动入进来啊,这个把这个诶对象注入进来啊,这是啊,咱们需。
10:34
需要去什么呢?哎,去操作的啊,把它该注入注入进来,那这时啊,咱们把这个该注入的对象注进来,然后之后呢,哎,咱们继续再往下去添加相关的配置信息就成啊,来实现咱们配置信息的一个创建啊,我看一下咱们的相关的这个买入啊,这个这块少一个东西啊,咱们作为我SP boat组件是不是该加什么呢?注解得加一下啊,标明一下我是你的一部分,哎得什么呢?加咱们的什么呢?哎,Complete作为组件添加进来啊,这个别忘了,然后之后呢,再回来,哎配置类这块提醒就没了啊,这是是由咱们工具给咱们做一些提醒啊,咱们但凡有问题咱们确认一把,好,那继续再往下啊,咱们去什么呢?哎,这编写好配置类,创建好配置类之后呢?哎,咱们需要添加相关的配置啊,这个配置的操作呢,哎,咱们去明确一下,首先咱们要配置一个非常关键的东西,就是咱们的什么呢?Security manager啊,咱们对应的什么呢。
11:34
Manager需要配置一下啊,这是啊,咱们需要做的第一步啊,我把这个注释还有咱们的方法头添加上啊,咱们实现一下这个方法体啊,进到咱们代码当中啊,需要咱们什么的,呃,这个创建啊,咱们配置类易运行的时候啊,在咱们工程运行的时候会自动执行配置类啊,执行配置类的时候,咱们需要创建对象啊,这块去塞到咱们容器当中,这个对象就是它default web啊,Security manager啊这块呢,默认的外部相关的哎,咱们的安全认证的管理器需要创建出来,好,那这块呢,需要有几个步骤啊,咱们去一步一步的去实现它,首先啊,咱们先去创建先new这么一个对象,然后呢,往里面去C这个相关的一些啊,咱们哎必须要初始化的一些内容啊,咱们一步一步来,首先第一步哎,创建创建一下啊,咱们的对应的对象就是它,哎,咱们的default web security manager啊,去创建相关的对象啊,很简单啊,咱们直接。
12:34
去拗一下就成拗出对象来了,哎,光拗出来还不够啊,咱们需要往里面去什么呢?哎,设置相关属性啊,首先啊,咱们呃,既然说了咱们这回要用到什么呢?哎,这个加密相关的,所以咱们需要创建加密对象,然后呢,并设置相关属性啊,这是咱们第二步创建,创建加密对象啊,设置相关属性。
13:03
好把相关属性设置进来,那第三步咱们需要做什么,哎,将咱们的这个什么呢?加密对象啊,去存储到咱们的什么呢?MY当中啊,这个去存储进去,第三将啊咱们的什么加密对象。存储到,哎,咱们的什么呢?My room当中。哎,存储进去,这是第三步,那这个第四步啊,你存储这个买room对象,哎,也需要C到啊,咱们最开始创建的这个哎,Security major对象当中啊,需要把这个my room也存进去,这是第四步啊,咱们需要哎写清楚,将哎,咱们的RAMYRA,呃,这个相关的对象哎存入到啊咱们的default web security manager对象中。
14:14
好,这是啊,这个完成咱们数据的相关的封装啊,最后一步就直接return就好啊,在咱们的配置类运行的时候,就可以帮咱们去创建所需要的相关对象了啊,这之后返回就可以好带着各位啊,先把步骤捋一遍,然后之后呢,咱们一步一步的实现啊,那就非常简单了,按照步骤一步一步实现,首先我先去什么呢?是不是new一个,哎,咱们的对象来吧,直接去new一个new一个,哎,咱们default web security啊什么的major啊,直接创建相关的对象就好,哎,创建一个,哎咱们的哎认证对象啊,这个咱们的的认证对象创建出来,哎,这是诶少一个啊,少个括号啊,咱们把这个对象创建出来,然后之后呢,哎,咱们去创建这个加密对象啊,就是咱们的什么呢?哎,这个创建咱们的相关的加密对象啊,就直接也是逆向流程。
15:11
用一下咱们的加密对象,哎,咱们的哈希。哎,这个什么呢?哎,咱们对应的假品条就是他,哎咱们的maer啊,把这个ma创建出来,同样归属于咱们的,哎,这个S啊,这个相关的包项啊,创建相关的这个ma对象,呃,直接去new出来就可以啊,咱们这个命名简单点就叫ma啊,把这个咱们的相关的加密对象设置好啊,这个创建出来,然后需要往里面去设置相关的属性,那设置什么属性呢?咱们还是按步骤来吧,啊,咱们把细的步骤也捋一捋啊,2.1啊,我需要做什么呢?咱们是不是采用MD5加密对吧?哎,写清楚采用MD5。哎,采用MD5加密啊,这是第一点,然后之后呢,还得写清楚,咱们是不是还有除了这个MD5加密,是不是还有迭代次数呢?啊这个咱们也得写清楚啊2.2,哎,咱们什么呢?采用的什么呢?哎这个哎采用的什么呢?迭代加密的次数。
16:23
哎,也写也得写清楚,然后呢,第三就把这个啊,这个不是这个2.3啊,第三啊,把它塞到这个相关的买RA对象里,正常好给咱们的matter啊进行一个参数的一个设定,在这点一下啊,咱们设置一下啊set下set下啊我这个所采用的这个什么呢?这个相关的呃,这个呃采用的相关的什么呢?这个咱们加密的方式是什么,咱们确认一下啊在我看下在这啊用的加密方式啊,它的名称是什么,咱们不用多说啊,什么什么MD5对吧?诶MD5加密啊,这是明确一下,然后还有啊,咱们得设置一下啊,咱们的什么采用的哎,这个迭代的加密次数啊,也设置一下,直接塞在加子上啊,同样设置一下咱们的这个呃,迭代加密的次数是什么啊,指定下三次就可以啊,三次的加密好,那再往后呢,就是咱们的第三大的步骤了。
17:20
还需要将咱们的什么呢?哎,加密对象maer封装到咱们的my room的这个相关的对象当中啊,直接塞进去就成点儿,哎,咱们直接去算一下啊,这个相关的ma啊,这个指定一下咱们的,哎,这个加密对象就好,塞进来就可以啊,完成咱们的参数设置,然后之后呢,哎,这个还没完啊,咱们最终需要把咱们的my run啊,再塞到咱们的security manager当中啊,直接塞进来就成,第2SET,在set下咱们的哎这个ru啊,不是rus啊,就一个哎,Ru直接塞进来就成,好把咱们的买run塞进来,完成咱们的一个什么呢?哎,这个呃,这个对应的run设置,然后再往后呢,就直接return就好,Return。
18:07
Return一下啊,咱们对应的呃,Default,呃default web啊,Security manager啊,咱们把这个security manager返回就好啊,通过咱们的配置类啊进行相关的设置返回这块呢,哎,省去了咱们什么的,哎,像之前似的加一堆啊,咱们的什么的相关的哎配置信息啊,相对而言更简单啊,这块呢,通过咱们配置类呃,完成这个相关的配置好还没完啊,咱们再来底下啊,再去添加一下啊,添加一下咱们的哎sir的内置过滤器的拦截范围啊,指定一下你到底拦截哪些信息啊,直接复制过来就行。是吧,这我就不敲了啊,直接复制过来啊,咱们去添加一下,哎,它内置拦截的这个相关信息。好,咱们去看一下这个,哎,多了一个括号,呃,什么啊,这该去什么呢?哎,该去导包,咱们导一下可以看到哎设置,哎不呃设置不认证可以访问的相关资源啊,比如说咱们的马上要写的登录认证这个,诶访问的这个ul这块咱们可以什么的,诶这个不认证就可以访问啊,包括login啊这块设置下还有什么呢?设置需要登录认证的拦截范围这块也是啊呃,设置好就可以啊,完成咱们的这个相关的设置项啊,这块呢之后诶这块呢,也把它添加到咱们的工程当中就可以。
19:28
啊,但凡咱们访问的时候,诶,你这个用这个相关的固定URL访问的话,它不会进行一个什么呢,诶拦截啊这事啊,咱们设置好这个,诶内置过滤拦截范围啊,把它配置好就行,根据业务需求咱们进行一个配置就好,好以上呢,咱们创建好这个相关的配置类,那还差一步啊,咱们什么呢?整个死命Bo工程的一个对前端页面的一个入口啊,咱们得创立一个创建什么controller啊,咱们把controller也创建出来啊,好,进到咱们课件当中,实现咱们的啊这个CTR啊,相关的服务方法啊,咱们直接先去创建一个目录吧,呃,进到咱们工程当中啊,我再去new这么一个package啊,Controller在controller目录下,咱们创建什么呢?My controller啊,去创建出来就可以。
20:18
好,创建my controller啊这个哎这个对应的controll类啊,该加注解加注解啊这块呢,比如说哎,咱们肯定要有的,哎表明身份的什么呢?哎,Controller。哎,Control注解也有,然后还有就是什么呢?咱们的request mapping啊,指定这个咱们control类的请求路径啊,这块呢,就参考课件了,这块呢,哎,咱们之前已经设置了啊,像咱们的诶,My controller啊,这个相关的路径是不做咱们认证拦截的啊这事啊,咱们设置一下在底下啊,咱们需要做的事是不是实现咱们哎对应的登录的方法还还是看刚刚的配置了啊,这会是不是也写清楚了是什么,是不是它的路径是login对吧?哎,Login相关的操作就在这儿啊,咱们去把这个方法实现一下,这块也并不复杂啊,咱们去该加注解加注解,咱们用get方式吧,哎,Get方式方便咱们进行测试啊,Get mapping,然后指定一下它对应的路径啊,咱们就叫,哎之前配置的这个路径就是它了啊user locking就用它,然后呢,之后呢,呃,还有咱们什么的这个返回的信息呢,咱们就别重定向了啊,咱们就直接返回结果啊,来个提示信息就成咱们的response啊,咱们的。
21:30
用response body啊进行一个返回这个呃,咱们的返回的这个执行结果,好,咱们把这个方法串联出来啊,那返回的就是一个字符串啊,咱们认证结果就可以,咱们就叫user login吧,User login啊塞进来,然后呢,设置相关的参数啊,咱们把参数设定一下,那这个船的参数呢,其实说白了就两个,一个是字符串的什么呢?Name啊,你把name给我传进来,还有一个就是什么呢?哎,字符串的什么呢?哎,Password啊,密码也给我啊这个哎咱们的哎把这个密码跟咱们的用户名拿到手,然后之后呢,诶去实现咱们相关的操作就可以啊,那这块呢,大家各位啊,还是把里面啊咱们需要走的流程,哎登录认证的这个方式咱们去写写,首先第一个哎不用多说,我得获取咱们的登录认证的对象对吧,叫什么,是不是subject对象对吧?哎,获取下获取呃,Subject对象。
22:31
来获取subject对象,这是第一步,然后之后呢,哎,这个还不算完啊,咱们想要做认证,需要把subject对象是不是封装啊,这个相关的数据啊,且封装到咱们的对应的token的那个什么的,哎对象当中对吧?哎,封装请求数据到token。哎,封装到talking对象里面,然后之后呢,哎,咱们是不是调用什么呢?是不是subject这对象的log方法进行登录对吧?哎完成这个登录校验第三啊,咱们的哎调用调用啊咱们的什么的这个login方法来进行登录认证。
23:20
好,这是带着各位网把这个大的步骤写一写,那咱们再去什么呢?把这个代码实现出来啊,首先第一个创建咱们对象,哎,Subject对象,哎,创建咱们的subject对象啊,还是咱们zero啊这个subject对象,然后呢,哎,这个起名就叫subject战对吧?啊直接等于啊,咱们通过什么呢?这个工具帮咱们创建就成啊。哎,就是它security啊,这个相关的工具点一下啊,直接去get一下流程啊,就获取一下咱们对应的什么呢?哎,这个subject对象,然后之后呢,将咱们的所有的请求封装到咱们的,诶这个token对象啊,这也是咱们之前啊去写这个相关的啊,这个买RA里面设计那个对象啊,就是哎咱们的authentication token啊,直接用authentication token就可以。
24:15
看一下在这哦,Somedication token啊直接什么呢?哎,去new出这个token对象就可以来token对象直接去new一下啊,这个相关的对象啊,咱们用什么什么是用户名密码去创建对吧?来指定相关参数,一个是用户名,那一个是密码什么的password对吧?啊直接用什么密码诶给在这块诶进行一个C入啊完成咱们的token的创建,然后之后呢,很简单了,咱们就直接调用相关方法就成,哎,Subject对象调login方法就可以点哎,Login直接塞入咱们的token啊这个相关的对象就好啊完成咱们对应的登录校验,那还有个事儿,是不是可能会登录失败对吧?所以在这儿,哎,咱们是不是得try catch一下对吧?诶,Try catch。
25:07
抓一下相关异常啊,但凡没有抛异常啊,这块呢,登录认证之后没有抛异常直接return啊,咱们就来一个字符串吧,就是登录成功。哎,直接啊,Return登录成功啊,这是咱们对应的登录相关的操作,那之后呢,但凡出现异常了,咱们就什么呢?哎,来个输出吧,这个c out输出一下什么呢?登录失败。但是呢,咱们作为什么呢?哎,前端啊页面是不是我也经能得到这个反馈结果对吧,咱们也简单点,直接return一个登录失败就好啊,完成咱们这个结果的反馈,好这是啊,咱们把CTRL实现完毕,好那到此为止呢,可以说咱们的代码写的差不多了啊,咱们可以去进行进行一下什么是不是测试,呃这个呃这感受一下对吧?好,那这块得说一下,咱们想要进行测试呢,首先第一步。
26:07
诶,确认一下你的数据库的这个相关的信息,咱们可看到在这儿,诶对应的有用户相关信息,还有你对应的什么的,诶这在这儿有这个加密的这个相关的什么这个密文啊,咱们是加盐三次加密啊各位参考咱们的课件往下翻啊,咱们之前是不是写的有这个MD5加密的小弹幕例子,对吧,还是用张三啊Z3进行一个加盐加密啊这块呢,呃,进行一个什么呢?三次迭代的加盐加密啊啊这个相关的报文在这儿,确定你的数据库里面的值跟它一样,诶七幺开头5F结尾,咱们圈里吧,七幺开头5F结尾没问题啊,咱们把这个密文哎给它复制过来,然后之后呢,启动服务,咱们进行个测试啊,诶测试一下这个相关操作,然后启动相关的这个服务啊,咱们进到咱们的对应的工程当中,在这啊咱们启动一下,诶,咱们既然是get的方式啊,那这块呢,很简单,咱们拼uol就可以啊,直接拼这个相关的参数。
27:07
九城一个是咱们对应的name是什么,一个是咱们的,呃,对应的什么的密码啊,把它直接拼上,咱们测试一把看看好这个服务,呃,可以看到已经启动起来了,咱们拼一下这个相关UI啊,哎,这个咱们启动的这个多少号是8088,那请求的路径呢,在咱们的配置类里面也写了,就是它好了,再往后呢,哎,这个8080啊,咱们8080端口号,然后呢,在这儿,哎,咱们请求的ul也有,然后呢,之后拼上咱们所对应的哎相关的用户名密码就可以啊,就很简单了,来带着各位咱们去把它实现一下。好在这儿啊,咱们什么呢,这个进行一下测试,Local host端口号呢,我选择8080。然后呢,哎,请求路径,咱们指定一下这个相关的,诶多了一个斜杠啊,哎,这个指定一下咱们访问的路径,然后在后面咱们要什么呢?是不是拼上参数对吧?这个很简单了,直接用咱们的问号啊,拼上这个参数就成name name等于什么呢?哎,这个就直接写中文就成了张三。
28:14
Name等于张三,然后呢,还有咱们的什么呢,按。And啊,还有什么呢?是不是密码对吧,Password。哎,Password哎,它等于什么呢?哎,等于Z3啊,咱们测试一把回车各位看到登录成功啊,这是啊咱们对应的什么呢?诶登录相关操作啊,如果这块你换一个呢,诶比如说我这Z来回车登录失败啊,这是啊咱们对应的什么呢?登录认证的一个实现啊,完成咱们登录认证啊这个相关的诶这个接口,当然这块呢,咱们也可以去把这个前端页面给它添加上啊,去进行一个相关的后续的功能实现啊,咱们诶初步把这个接口实现完毕啊,登录认证成功失败啊还是诶看成功的啊哎,第三访问登录成功啊,这是完成咱们的登录接口功能。
我来说两句