00:01
那接下来呢,我们来看一下啊,刚才我们算这个,呃,测试的呢,是生成JWT啊,然后接下来呢,我们来看一下如何解析JWT,解析JWT呢,我们还是要去啊创建一个方法,然后我们来把这个方法创建一下,就test啊,Get user info,那我们解析JWT的目的呢,实际上更多的情况呢,第一就是先校验这个JWT合不合法,第二就是从JWT当中呢,把我们的有效载荷,也就是说前面我们曾经从过我们自己的这个必要的身份信息,我们是需要把这个身份信息呢从JWT当中解析出来的啊,这是我们的一个目的,好,然后接下来呢,我们就打开我们刚才的这个测试代码啊,我们在下面呢,再添加一个测试用例叫test public wide test that user in for哈,获取用户信息。
01:02
体系,然后呢,首先我们得有一个JWT字符串,好,我们就嗯给它定义为token吧,然后这个JWT字符串呢,我们说恰好刚才咱们有一个,我们就把它复制过来。Copy好,然后把它copy到这啊,回撤,呃,那个分号回撤好,然后接下来呢,我们来啊,对这个JWT进行解析,JWWTS还是它啊,然后里面呢,除了有刚才我们说的那个build的指板叫构建,还有呢,Passer叫解析好,那这样的话呢,我们就得到了一个JWT的解析器,那如何解析呢?首先你得先校验一下这签名哈希,这签名哈希。这个设置进去了之后,能正常的解析才叫做能解析对不对,因为这个其实叫一个编码的过程,这个叫一个解码的过程,那我们都要用同样的签名哈希去进行编码解码好,那所以这面呢,我们这样写啊,就是j wt passer点3K啊,然后呢,把刚才咱们那个。
02:16
Token啊。的3K给他拿过来,所以这面呢,我们就写赛三,然后TON3使用这个签名哈西进行解析哈,啊,然后这块呢,有个叫做pass pass的话,我们啊,一般情况下就是pass这个claims j w ts,然后里面呢,我们放什么呢,就放刚才的这个头。啊,把它放进来,放进来之后呢,我们就会得到一个对象,这个对象里,那我们可以管它叫做,就叫这个名字吧,叫做claims j wts,那么这个claims j wts里面包含什么呢?我们来看一下它包含的内容,它比较多,你比如说你可以把当时的签名部分解析出来,可以把整个的啊载荷部分就是包的部分这个拿出来,可以把整个的hi的部分拿出来,那实际上呢,啊,整个的这个啊。
03:17
JWT当中的三个部分的内容,我们都可以在这个对象当中拿到啊,但是我们当前的这个测试用例呢,我们的关注点呢,是拿到我们的有效载荷部分,所以呢,我们就会拿body好,我们把body拿出来,这个body呢,一般情况下我们管它叫claims啊,就是载荷部分,载荷都叫claims好,然后接下来呢,我们可以从这个claims里面,首先呢,去拿我们的自定义的部分,拿自定义的部分的话呢,我们自定义的部分啊,当时定义的这个名字。就是以字符串的形式定义的,那也就是说你取的时候也是比较灵活的,那比较灵活的这样的一个方法呢,其实就是钙的方法对不对,Get方法里面你可以取任何的一个件啊好,然后呢,我们就用这个get,然后呢,之前我们的这个存的话,我们存过nickname啊,万和肉啊,所以说呢,取的时候我们也取nickname。
04:21
啊,当然了,呃,它取出来呢,是一个object对吧?啊,所以呢,我们得给它换成词质啊,当时你存的时候是什么,你取出来的时候呢,你就把它定义成什么就行了,Make name,这是第一个,然后还有第二个,第二个呢,当时我们存的是A头像,还有第三个肉角色,好,这是我们的有效载合部分的一个获取,那另外呢,其他几个部分的内容的获取,我们也可以依次拿到claims.get7个部分,Audience expation ID issue at issue now before subject都可以依次获取下来,那么我就以ID为例吧,获取其中一个,啊,那这个呢,是它的ID,然后呢,我们就打印出来它的ID就是它,好剩下其他的六个大家可以自己去写。
05:16
那这块呢,就是我们整个的一个JWT解析部分的内容了,当然了我还是需要把这个那个内容打印出来的啊,然后这块呢是阿LAN,这块呢是肉。好,然后接下来呢,我们来运行一下。好,那这样的话呢,我们这个就生成了是不是。就解析出来了,相当于然后呢,接下来呢,我们来看一下啊,假设说我再重新生成一下这个。都。好生成好了之后呢,我们把这个复制过来,再重新试一下。
06:00
把它呢,放到这个位置好,然后接下来呢,我再来运行一下。啊也可以解析是吧,然后呢,我们再来看一下,就是这个过期的这样的一个问题啊,过期的话呢,比如说我现在就让它有效时间呢为一秒。有效时间为一秒,有效时间为一秒的话呢,我们来运行一下。好,然后那马上失效了哈,现在已经失效,然后复制一下。然后接下来呢,在这边呢,我们再粘贴一下。啊,这面呢,我们再来解析一下。
07:02
大家看这面呢,他就报告了j wt at这个时间啊,然后current time已经是这个时间了。是不是啊,所以呢,这是09:29:49的时候就过期了,但是现在呢,已经09:30:10了,所以呢就没有办法解析了,所以这是过期时间的一个测试,好那这几个呢,就是咱们经常用到的一些特性了,所以后面咱们在做项目的时候呢,还会对这个JWT呢进行进一步的使用,这一块呢,咱们大家知道啊,它是如何生成的,以及如何进行解析就可以了,就达到我们的目的了啊。
我来说两句