00:00
就是下面用下GWT,因为GWT呢,他在我们的登录注册或者说其他模块中呢,我们应该都要用到,所以说为了这东西能通用,我就把JWT放到咱的common里边,然后来这里边建个工具类,为了咱后面这些模块中都能用到。啊,这个啊,咱写一下啊。我小弟位置。我们的做法就是在我们的common里边。先引入他这个依赖。然后咱们啊,复制我们这个JWT的工具类。就是放到我们的com里面来啊,那下面我来写一下啊,来看怎么做啊,首先第一个呢,因为咱们现在啊,我们这个有一个JWT你要用的话,第一步肯定需要比如一个依赖,那这依赖我给他就引入。我把它就放到咱们common里边这个common YouTube中了,啊,放在这里边,咱先引入第一步就是它这个。
01:04
依赖把这个我先复制。给各位啊,给他知道啊。第一部分。然后把它啊,我在我的图上画一下啊。这位置。咱引入依赖就是刚才我们看到的。这个依赖。把它建议入啊。稍等我把这个服务先停掉啊。电脑有点卡了。这个引入,然后引入之后呢,第二部分在里边呢,咱就复制我那个工具类,我的工具类在今天的源码中给大家听出来了,我应该已经共享了,各位可以提前下一下,或者一会儿下一下,把这个直接输入过来啊,就是这个工具类叫j wt u。来用到它。给他拿过来啊,然后下面我来弄一下啊,把这个j wt us,咱现在给它复制到我们这个common u里边来,在里边我们看到啊,之前我们有R这个统计机构返回,那我就直接。
02:07
数到这个位置啊,直接给他就拿过来了。放一个叫JWTS。直接复制。还是叫这个名字。然后复制之后咱看一下啊,这里边的内容到底都是什么,我们来看一遍啊。这个不需各位敲一遍,但是要求各位能看懂代码什么意思,如果让你去改,你要知道怎么去改,那咱们就详细看一下啊,里面的结构就是在这类中呢,我是写了很多的静态方法,每个方法对应不同功能,这些方法咱们一会儿都要去用的,那咱们就一个一个来看一下啊,分别都是什么意思?首先我们看第一部分,这个部分。第一部分呢,在里边呢,我是定义了两个常量。两个常量,两个常量什么意思,咱看一下啊,首先看第一个常量,这个常量。
03:03
这一常量什么意思呢?我写一下啊,它就表示啊,设置咱那token那个过期时间那个值啊,就是token的一个。过期时间就超过多长时间就失效了,这是我写的一个时间,这个啊是第一个。然后看第二个,第二个叫这个东西APP是不是一个密钥,比如咱根据他做这么一个字符的一个加密或者一个编码啊,就是你那个密钥,为了让后面做那个加密和编码,而密钥什么意思呢?咱看里边啊,就是刚才看到这个签名哈希这个第三部分。大家看这位置啊,这是它本质上那种就是编码方式或者加密方式,然后你看里边有这个东西。是不是一个密码就根据这个,或者说叫密钥就后加密,所以这位置我就写了一个密钥,这密钥这个值是随便写的啊,这是我随便生成一个字符串,或者你随便来一个什么abcd啊都可以,我就写这么一个密钥,而在实际的公司中,这密钥肯定是由你公司按照自己规则生成的,每个公司生成规则肯定都不一样,用它做这么一个密钥的一个加密。
04:11
啊,这是第二个就是两个常量,一个为了token过期时间使用,一个为了密钥,就是做加密操作啊这个各位知道啊,然后这个做到之后,我们往下看方法,首先看第一个方法。第一个方法什么意思呢?它就是生成我们那个token字符串的一个方法。然后方法怎么做到的,大家看啊,在方法中呢,这个位置我是传了两个参数,一个叫ID,一个叫niname,就是一个用户ID,一个用户昵称,当然你可以传多个值,我就传两个为例,两个会写三个四个五个六都一样,然后下面是它最终生成。那这个生成怎么看给大家啊。标注一下啊,它里面这个地方啊,主要是。这几个地方啊,那我们来看啊,首先它就是生成token字符串,咱们用的是GWT的规则,那怎么做到第一部分GWTS.build就是构建DLT字符串,然后构建的时候第一部分。
05:16
大家看啊。这什么意思?看这单词。拍的是不是头啊,它就表示设置GWT的头信息,也就是咱们刚才看到的。这个信息这叫投,也就是它里面的第一部分啊,就是这个。红色部分这是头,这是第一段代码,这个是固定的,不需要改啊,然后呢,往下看这一部分是什么呢。各位来看啊,它就表示啊,设置你token那个就是字符串的一个过期时间,首先我们先来一个subject,就是它一个分类,这名字随便起的,然后下面是个过期时间,你看过期时间啊,这是我们刚才写的,它就表示啊得到你的当前时间,再加上里边你这个过期时间这个值,然后这个如果超过这个时间,它就过期了,这表示设置过期时间,而如果说我们需要改的话,那就改它这个分类,然后这个时间改一下。
06:16
啊,这是第二部分设置过期时间,然后咱再看第三部分这个部分。这一部分很重要啊,它就表示设置你的tonic主体部分。设置。Token。主体部分,也就是里边啊,我们可以存储用户的信息,因为我现在的信息中啊,有两个值,一个ID,一个昵称,所以把两只说进去,就是第一个我起的名字叫ID,然后这是ID,这是一个name,昵称这个名字随便起的就是ID和那个name,当然如果说你有多个的话,那你把这个可以再加上多行,假如说我现在比如我再来一个,比如它是什么name,或者掐值,你可以依次来加,现在我是以两为例,多个跟它是一样的。
07:01
啊,这是它的第三部分设置token那个主体部分里边用于存储我们的用户信息,把用户信息就放到里面去。这个啊,各位都知道,然后除了它之外,还有最后一部分这部分,这部分怎么理解呢?就是咱们ton中的第三部分叫签名哈希,你根据什么样的密钥,包括什么方式做这个字符串的编码,也就是咱们刚才看到的。这部分根据你的密钥,包括什么样的方式做编码,然后它编码之后最终生成的就是我们看到的这种结构啊,所以这是生成token字符串一个方法,而咱们需要改的话,就是改它的分类。包括过去时间,以及你像里边存的这个值,当然你可以存多个,或者存一个,或者存十个都可以,最终把这个旅退,这是第一个方法,生成图文字符串啊,大家能看懂会改就可以了,因是一个固定的结构。
08:02
这个介绍完了啊,这是第一个咱一会儿要用的啊,然后除了它之外呢,下面还有另外几个方法,那我们看一下啊,来看第二个方法。第二个什么意思呢?强调啊,其实第二个和第三个啊,都是用于做相关的判断,它是干什么?就是判断你的token是否存在于有效,这个也是判断token是否存在有效,里面是写了两种方式啊,那我们看一下啊,两个方法功能都一样,都是判,也就是说判你的ton是否是一个,按照我们规则是否ton,就是它是不是不是伪造的,如果是伪造的,那肯定会反映false,不是伪造的会反映处。那它怎么判断呢?大家看啊看这代码中,首先第一部分,如果这个值等于空,直接false,如果它不等于空,咱判断根据我这个就是这个密钥,根据它来验证一下我们这个token是否是一个有效的token,最终就用这个叫。
09:02
Gts pass,把它解析,然后判断,如果这个值有异常,那就不是有效的,Return false,如果是有效的,我们就return true啊,这是一个方法判断它是否有效。直接我们传一个同音字母串做判断,然后这个方法跟刚才一样,只是它传的参数不一样。大家看传什么参数。这个参数不知道各位是否记得啊,应该是咱们在。是外学到的http request是不是一个对象?因为咱们后面要把ton值呢,咱为了操作方便,我们要给它放一个hier里边,所以这个方法就是通过request在hier里边把这字符串得到,然后再做个验证,看它是不是一个有效的头盔,就是通过request的头信息得你的值,这个啊都是判断是不是有效,不需要咱去改什么,然后还有最后一个,最后一个是什么呢?这里我写到就是根据你的token字符串。
10:05
获取token字符串里边的数据。比如现在啊,咱们拿这个字符串,我想从这字符串中呢,把咱存的用户信息取出来,拿这个方法就做这个事情,从token字符串中获取你的用户信息,那大家看怎么做到的啊,这位置也是传个request对象,然后通过request得到我们的token字符串,然后token字符串里边把值取到。然后大家看值怎么取啊,他用这个。Pass解析得到一个东西叫GWT,这个S,然后通过SS里边有个方法,这个方法。大家看,这方法叫盖包底。各位来看啊。保底什么意思?是不是有体的意思,或者说主体意思,它就表示得到你字符串中那个主体部分,然后在主体里边把它那值取到,因为咱们的值是这种结构,你理解为就是一个key value key value根据它的key把值取到,比如说取ID,那就get key,我取nickname,那就get nickname。
11:13
这个方法中我只写取了一个ID,那就get ID,把这取到,如果你取nickname,那改成nickname值,所以这个啊是咱们的这个方法根据你的token字符串获取里边的用户信息,把这渠道指咱是通过快的头信息得到,因为后面咱都要放到快里边啊,就为了咱们后面登录显示方便。这个啊,就是JWT的字串,就是几个方法啊,所以各位这个工具类能看懂可以了。最后啊,我再说一遍啊。它里边这么几个方法,第一个方法就是根据我这个ID和nickname生成一个token字母串。然后第二个就是判断token字符串是否有效,第三个也是判断有效,只是一个是传字符串,一个是传request,最后一个就是在这个通文字符串中把里边的用户信息取到,咱也是通过request得到那个通文字符串,然后获取,主要啊这么几个方法,所以咱们后面都要用到,所以大家啊能看懂会改就可以了,因为是工具类嘛,里边是固定的几个方法。
12:26
所以咱们啊,现在把这JWT就加到我们com里面去,咱一会儿做注册做登录,这几个方法我们都需要用到。
我来说两句