00:01
各位同学大家好,刚才呢,咱们完成了手机登录的接口开发以及前端的整合,那咱们下面继续往下来做,下面咱们干什么呢?我们来完成用户认证,就是用户登录与网关的整合,那这部分呢,我们要做什么事情呢?首先给大家先做个说明。各位看到啊,因为咱们现在的访问方式,我们所有请求是不是都要经过咱的网关呀,也就是说我们访问接口里边的这些部分都要先经过网关,然后由网关里边根据我们的配置再给它转发到不同的部中去,包括各位看一下我们之前的配置,比如大家看,比如咱看那个假设我现在把路径中包含hospital披。咱是不是给它访问到这个户中去,当我包含这个user是不是到这个户中去,当我包含SMM是不是到这个户中去?所以我们现在所有访问接口的请求,首先都要经过咱的网关,然后这张图上给大家画一下,这就是咱们的网关。
01:10
然后我们的请求呢,都会经过这个网关,然后由网关根据请求路径给咱们再转发到不同的服务中去,比如说你是UR还是什么医院,还是等等家服务,所以咱目前是这么一个过程,但这过程中呢,大家注意,因为咱们就是有些接口访问是不是需要登录它操作呀,比如说咱们做预约挂号,做这些操作是不是登录之后才能进行,所以这个登录过程呢,咱们这里边就可以在网关中做判断,就是网关中判断,当你访问接口,如果说你是登录,然后能访问,如果你不是登录,然后直接返回,就是这里边需要登录之后才进行操作,也就把这个登录校验放到网关中进行实现。然后写一下。登录的校验,而网关校验里边比较方便,首先我们可以约定哪些路径可以进行登录,哪些约定不需要登录就可以进行访问,所以咱们这些过程都在网关中进行,而我们现在做的事情就是把用户认证跟网关进行整合就可以了,这就是我们一个基本需求。那这过程怎么做呢?给各位说一下啊,就是这个过程就是做法就是很简单,我们直接写个类,然后这个类呢实现getway,网关中一个接口叫global filter,然后在filter中设置这里边你哪些路径需要进行认证,包括认证过程是怎么做的,就是咱是通过cookie或者hi掉中取到咱们的值。
02:43
最终把这完成,那下面给各位来写一下,首先我在这个serviceway里边,我们先建个包,这个包呢,比如我起个名字就叫做filter,咱在filter中写上这么一个类。
03:00
我这个叫filter,然后filter中有个类,这个类呢,我在工具类中给大家影评出来了,我把它直接复制过来,咱们来看一下,改成咱的效果就可以了,现在我把它复制过来。然后咱们看一下啊,这个过程首先我们一个类交给损管理,让他实现,这个叫global filter,然后在里边有它对应的这些方法,那这些方法我们来看一下啊,首先在这些方法中,我把这依赖先引入啊,这些多余的我先去掉啊,咱们引入我们对应的这个依赖。这个先给他引入一下啊。这里边呢,没有我们的依赖啊,因为咱们这个相关的依赖应该是在我们的common里边,那我们在这PV里边呢,把咱们common依赖给它先引入,然后写单操作,那咱可以参考之前的service里边,咱们来看一下啊,Service中呢,之前引入的是这个叫service u,所以咱们现在在里边也把这个给它引入进来,然后能用到里面一些相关的依赖,就是咱们写那些工具类。
04:08
我把这个给各位先分过来。然后复制之后在里边咱们再引入它用的依赖,把其他的类没用的先去掉,咱就保留我们目前需要的这个标这个类,然后现在等他键来完成,咱们来完成这么一个引入,首先第一个其实就是它的一些相关的一些状态码的信息,我们给它先引进来啊。然后包括里边那个result,就是返回结果等等啊,包括这个JWT那个工具类目前都引入了,然后引入之后我们看一下里面的结构是怎么样的啊,首先当我们实现这个接口的时候,里面一个方法叫filter filter里边呢就设计的规则,在规则中我们主要就是这个位置,大家看啊,首先在规则规则中我们怎么做的呢?
05:00
先得到request对象,然后得到你当前仿的接口的路径,就是我们请求接口路径是什么?用request get u r get past得到,然后得到之后呢?下面做做个判断,比如现在我约定当我这个路径中是这么一个叫inner,那这里边我们就不允许对外访问,就内部才能访问,当你这个路径中有这个API,那我们要判断它是否是一个登录,当它是登录,我们访问,如果不是登录,咱直接返回这么一个状态码,就是我们这个状态码,我们是这个208,就是未登录。而判断过程中,大家看这位置啊,咱是判断UCIID是不是有值,UID这个方法我们写到下边,大家看啊,这个代码应该能看懂,咱们先从he特中取到token,如果token值不等于空,直接得到这个token,如果它等于空,我们直接返回这么一个值,通过它来做判断,就是最终这值是nu,那我们这里边表示它没有登录,咱们返回208的状态码,所以现在呢,我们就在这个getway里边呢,添加上了这么一个网关登录的一个校验,通过一个filter,我们就完成了这么一个整合。
06:16
所以各位这道这个特点啊,在实际中呢,各位要改的话,也就是改我们这个路径的规则,包括你登录的这个判断这么一个特点,然后里边还有我们返回信息这个O的方法,通过它就是像这里边返回咱们那些项的状态码。所以现在这个就完成了啊,然后完成之后呢,最后呢,咱就再把我们的前端页面部分做个调整,因为我刚才说到,当我这个网关中,你就是访问接口的时候没有登录,它会返回一个208的状态码,也就是这个状态码C端在前端做过判断,当这里边返回是208的状态面,表示你没有登录加让它就弹出在那个登录框,让它进行这么一个登录,所以咱们在前端中把这个做处理,当他返回208就来做这个事情。
07:10
那这个过程怎么做呢?那我们来看一下啊,首先不知道各位同学是否记得啊,咱们之前呢,曾经写了一个us里边一个request JS的文件,当时咱们做了一个封装,就是AX,在这里边呢,有两个部分,就是这是第一部分,这是第二部分,然后这两根是什么呢?它叫做intercept,就是拦截器。比如说咱们一个是请求的,也是想的,在请求里边就是咱们可以把那个token放到hi中,然后在想中咱做判断,如果他反而是208,那我们做一个登录的这么一个操作。那下面大家给他处理一下啊,首先我先在这里处理,当你是请求的话,那我们通过cookie中呢,得到token,把token放到咱的title中,因为你看到啊,刚才我的这个地方。
08:04
是不是从嗨的中去的值啊,所以大家要把它放进去后面才能取到,那我来处理一下啊。首先第一个,因为大家用到cookie嘛,最后把cookie先引进来,我们就加一个import cookie。From。然后我加上这么一个值,这个名字应该叫GS。Cookie啊,当时咱们写过这个东西,把这个先引入,然后引入之后呢,在这个位置咱们做一个处理,怎么处理呢?刚才说的给大家写一下啊,就首先我们做法就是先判断cookie里边是否有这个cookn值,咱做个判断,那咱们来判断一下啊,看里边有没有这么一个。特值。咱们来一个if。然后if里边呢,我上这个叫cookie,点上是不是get,然后get里边呢,加上你那名字,就是咱说那个talking。
09:09
啊,我们来一个to开,而这个值当时咱们在写那个登录的时候,就是我们在那个买hi里边应该写过,咱可以看一下啊,刚才我们刚写过里边的就是。找到登陆。这个地方。是放到里边,其实咱就取这个值,如果说这个值呢,不等于空,那怎么做,咱就把这个。Token的值放到这个cookie里面去,那咱给它放一下啊,我们就来一个这个,这个叫conig。啊,放到hi里边,点his,然后在后面给它起个名字,这名字我们叫做ton。然后它等于咱们cookie中取到这个值。就是里边这个cookie,这样的话我们就完成了,就这个判断cookie中有这值,咱就给它放到head中去,然后放完之后咱在这个response响应的拦截器中再做处理,就刚才我提到,当你的状态码是这个208的状态码的时候,那我们再进行就是这么一个,就是弹出那个登录框啊,那我们写一下啊,跟下面代码类似,要给他快速完成一下。
10:24
就是if。Response,点上对点上扣,如果它的状态嘛是这个叫做208。我们来一个208是这个状态吧,那咱们现在呢,让他就弹出咱那个就是登录的那个弹框,我写一下啊。状态嘛。是208。那我们就弹出。登录的那个就是输入框。而登录输入框,当时咱们在这个就是买hi中写了一个全局的监听事件,用它是能做到,比如里边我们在那个monkey中刚才应该写过,我把它就直接复制过来,也就是写上里边的这段话。
11:15
这个来不来,然后最终我们加上一个对推,如果说状态码不是208,那我们再进行下操作啊,咱们加个else来进行下列事情,我把这个给他。补充完整。所以这样的话呢,我们现在把这个前端的部分就做了一个处理,在前端的蕊块的器中,咱判断copy比中有没有这个透N值,有的话放到海中,然后在响应的拦截器中,我们做了一个208状态码的这么一个判断,如果是208表示没有登录,那我们弹出登录输入框,如果不是的话,我们再进行其他的操作。所以现在这个过程我们就最终完成了,就是关于手机号进行登录的功能。
我来说两句