00:00
就是刚才呢,把单点登录的三种方式给各位都介绍完了,然后下面咱们继续往下来讲,下面咱们讲什么呢?首先先讲第一个东西,这个东西它叫做GWT。那我来说一下这个是什么来讲一个叫G。WT。那这道题是什么呢?咱先看一下我文档中一个说明啊,就是这个刚才说到了用普通方式session有问题,然后解决方案用session广播,包括这个什么token这种方式做到啊,然后token方式呢,在术语中还有一种说法,它也叫这种说法。这个词。你写一下啊,就是在我们刚才说这个图上,大家记住token方式,还有一种说法,它也可以叫这个叫一种令牌机制,就是token live,就是一个令牌嘛,拿着token有值那就登录,没有值就不是登录,令牌也叫做这个词啊,令牌指就是token,那咱看这个我们要讲这个GWT到底是什么。
01:05
咱往下来看啊,这个刚才都说过了啊。因为我在刚才提到这么一点,说各位是不是有印象啊,我说过这个token token是什么,按照一定规则给咱们生成的是不是一个字符串啊,而字符串中可以包含是不是你的用户信息哦,而这过程在咱术语中有一种叫法,它叫什么呢?它叫这个名字。叫做自包含令牌。就是里边可以包含用户信息,它叫自包含令牌啊,这术语你知道别人提到你知道什么意思啊,但是你知道它的这句话就可以了。然后刚才提到按照一定规则,我刚才说的这个规则怎么样不一定,你可以自己约定,假如说我现在约定根据他的IP用户名存到我的字符串中,然后把他们做一个被六四编码,再做加密这样一种规则,但是规则到底怎么样,因为每个公司每个人的想法都不同。
02:07
所以针对这个问题呢,在这里边有一种比较通用的规则,就是这是一种比较官方的解决方案,很多人都习惯用这种官方的方案,是一种比较通用的规则,然后规则是什么呢?就是咱说这个叫GWT,所以各位可以理解啊,GWT是什么?就是给咱们规定好了一种规则,这个规则里边咱用它能生成一串字母串,里边可以包含用户信息,就是GWT,把规则给咱们已经规定好了,这个叫GWT。那我在里边写一下啊。刚才我们提到了。Token是按照一定规则生成的那个字符串里边可以包含我们的用户信息,这叫token。大家还提到就是这个规则,它到底是怎么样的,这个规则肯定是不一定的,因为每个人制定都不同,所以针对这个问题呢,咱们一般采用一种就是比较通用的这种规则。
03:12
通用的规则,或者说理解为是一种官方的一种规则,这规则是什么?又叫GWTGWT理解为啊,就JWT就是。给我们。规定好了这个规则,然后咱们使用JWT这个规则就可以生成一个字符串,里边包含咱的用户信息,这个就叫JWP,所以简单理解为就是把规则给咱们定义好了,再用它这个字符串就能生出来,这个就叫DWT啊,而现在很多这种投影规则基本上都在用DWT就生成。啊,所以各位把这知道啊,你知道什么叫JWT,通俗来说就是一种规则生成字符串,一种规则叫JWT。
04:03
这个啊,咱一会儿我们生成,用这个规则来生成,当然你可以不用它,也可以自己写规则,只是自己写的话,这规则有时候可能不完善,用这个规则肯定是更加完善。那GWT的规则到底怎么样,咱先看一下啊,首先往下看,在这里边呢,有张图,这张图中呢,标注到这部分,这一部分就是a wt给咱们生成了这么一个字符串啊,主要就是这个结构。那把这个我给大家啊,复制到这个,我这图上来啊,咱看一下。这个。规则到底是怎么样的啊?形式这部分啊。我把这个给大家截过来。然后大家来看一下啊,你看啊,现在这就是一长串字符串啊,这我写到多好,其实是一个字符串,而字符串中咱仔细看,在字符串中大家看到它是不是有三种颜色呀,这就是GLT这种规则,它生成字符串就这种效果,只是说这个里边啊做了编码,所以咱直接看肯定看不懂,因为它有一个本身的一种规则,那这规则是怎么样,给大家做个介绍啊,一会儿咱就生成成这个样子。
05:15
啊,各位看啊,里边有三种颜色,也就是这个token字符串,用GLT生成的,包含的三部分,你看第一个红色,第二个紫色,第三个蓝色,三个部分大家说一下啊,就是我们的第二部分。A wt。它生成的字符串。包含有三部分。这各位记住啊,三部分,那三部分我写一下啊,首先第一部分就是咱这个红色部分,这一部分是什么呢?你列为是JWT它那个头信息的部分。这是第一部分啊,而头信息是什么样的,看一下我的课件中,它里边就是。这个样子。所你看里边啊,有一个类型叫JWT,还有一个叫HS256,就是这是一种编码方式,这是它的头信息,咱用的是固定的,就是GWT这个类型,这是第一个啊,然后里边还有第二部分。
06:14
给大家写一下啊,第二部分。它是什么呢?第二部分有一种术语的说法,叫做有效载荷。啊,有效。百贺,这说的很官方,说的通俗点,这里边可以包含我们那个就是主体信息,也就是你的用户信息。它就放到我们的第二部分,也就是在这个。紫色部分里边有咱的用户信息,这是它的第二部分,那我们来看一下这部分啊,这叫有效载荷,里边有这些值,这些值可以自己约定,比如我这里边包含了名字,是不是管理员,包括什么其他值啊,你可以多加更多值,这是第二部分,叫做有效载荷,包含它的主体部分,也就是你的用户信息是放到第二部分。
07:05
然后它还有第三部分。给大家写一下啊,就是这个蓝色部分。第三部分是什么呢?啊,这个位置。他有一个词叫做签名哈希。那签名哈希什么意思呢?说的简单点啊,你列为它就是我们的字符串一个什么呢,叫做。防伪标志。什么叫防伪标志呢?假如现在啊,我按照a wt把字符串生成了,那如果说别人想伪造我这字母串,咱要给它加一个防伪标志,让它不能伪造,你通过方案标志可以验证一下A字符串是不由我们这种规则生成的,这叫。签名哈希,或者说放A标志,这是我们的第三部分啊,当然在第三部分中呢,它也是具体规定到了你这该怎么编码,怎么做操作,包括大家看这位置啊,你看写法中,它里边有个叫handle,就是投信息CS是主体部分,然后就这部分怎么做的,用贝64做了编码,根据这个S做了一个HS256的这种编码方式,最终生成我们字符串。
08:15
而大家看啊,里边有个点。它生成字符串中是不是有三部分,每部分用个点定隔开。这就是规定你这个。规则也是做了一个防伪标志,判定是不是有我们规则正字母串,这叫氢丙哈希这个啊,各位给他做个了解啊,里边就是用备案64,包括用这个HS256做这种编码方式,这个叫做GWT的这种规则。最后啊,总结变啊,JWT是什么呢?就是给咱们规定好了一种生成字符串的规则,这规则给咱们写好了,咱可以直接用它就能生成,然后在这JFT的字符串中可以包含咱的用户信息,这FT有三部分组成,第一部分头信息,第二部分主体部分就是用户信息,放到第二部分,第三部分叫签名哈希,就是规定规则,或者说是你的防伪标志,通过它能判定这规则是不是由我们GWT的规则生成字母串。
09:18
这叫GWT,所以咱们后面我们做这登录,咱就根据GWT把字符串生成,然后实现我们的登录和注册的这么一个基本过程,这个啊是一个介绍。大家把这个就我图上写着,写给他记住就可以了啊。所以这个我们就说完了啊。然后这里边啊,咱们把它说完之后,下面看它怎么去用,我们先浏览一遍啊,它的用法呢,很简单,就是我在今天这个源码里边我们找到啊,今天的源码中。给大家呢,提供了一个工具类叫j wt us,这工具类各位直接复制用就可以了,因为是一个固定的写法,这工具类不需要各位去敲一遍,但是要求能看懂,能给它改出来,因为就算你以后在工程中用的话,也是这种规则值里边可能有一些值需要改一下啊,这是一个给各位提供好的工具类,然后后面直接用就可以了,不需要你去敲别啊,咱一会儿详细说给工具类到底是什么。
10:22
然后这里边大家看到啊,就是这是一个工具类,刚才我看到了,然后在这个位置呢,咱要用JWT,你还需要做件事情,引入一个JWT的依赖啊,这依赖必须要引入,但你注意这依赖啊。注意看啊,这里没有写错,它就叫JJWT啊,这写的是对的啊,它不是GWT,是多两个这个相同字母GJWT,然后把它引入,咱就可以用到它的规则把这个生出来。啊,这是一个基本使用,因为咱那个GT呢,后面咱在做这个登录注册或者说其他过程中咱们都要用到,所以一会儿我就把GT放到咱们的common模块中,为了咱们其他模块中都能共用到这个工具啊这个啊咱马上写的。
11:08
所以咱们现在啊,把这个什么是FT给大家做一个说明,你把这个先给他知道。这个啊,我们就说完了啊。
我来说两句