00:01
好了,我们继续啊,那如何去对用户的数据进行加密呢?啊,那这节课呢,再给大家说一个呃库吧,呃,一个第三方的包啊叫什么呀,叫Jason啊web,那我们可以去搜一下这个库在GI上面。嗯,那这个我就关掉了啊,那第一个,嗯一我看一下是不是第一个,那有这么多。那。嗯,应该就是他。好了,那这个阶层web呢,要用的第一步呢,就是下载安装啊,下载安装,那么这边下载安装的过程啊,这样吧,我们先在这让它装着啊,先装着,然后呢,我们再去看这个库怎么用。先把服务器停掉,我让他安装一下这个包。然后来到官网我们看一下啊,首先我们需要先引入Jason web token啊,因为它的名字太长了,所以大家习惯性的叫它叫什么JWT,就是这三个单词的缩首字母GWT对吧。
01:05
引入的呢是一个对象,那么这个对象里边有个方法呢,叫singer啊,用这个方法呢,就可以对指定的数据进行加密生成。唯一标识图片。而现在我们要加密的数据是谁?其实是这个对象。哎,那后边这个字段是干嘛的呢?啊,什么SSHSHSH,对吧?苏哈哈,也不知道它是干嘛的,其实呢,这就是一个普通的文本字符串,那么它的作用就是以当前加密的一个密钥。密钥。为什么要有这个东西呢?你想想看,这是一个第三方的库啊,它里边的算法啊,这加密算法。是固定的,那既然是固定的啊,那这个库呢,你能用我也能用。假设没有这个密钥的话啊,会有什么问题,比如说用户A用这个方法对指定的数据加密了,他以为。
02:02
他的数据安全了,可是用户B呢,应用这个库呢,在对这个数据解密啊,注意啊,下边是肯定有解密的方法一解密。是不是又给他反比了?那这就加密好,没有任何的意义,而且你的数据也不安全。哎,算法是固定的,但是如果是用户A加密的时候,我自己悄悄的设一个密钥,这个密钥只有我知道,哎,天知地知,你知我不知,那这样的话我就没有办法去反编译你的数据。嗯,如何反编译呢,下边啊往下翻。在这里GWT呢,还有方法呢,叫verify啊verify,那么这个库你看。要传的参数是不是token啊,反变出来是个对象啊,注意啊,传token的同时呢,必须要写一个密钥,这个密钥不能乱写,就是你当初加密时候的那个密钥什么呀松啊。啊,反编译出来了。
03:00
来。还是一个对象啊,你看对象点fo拿到的结果是半,而我们当初加密的目标数据是不是就是一个对象,你看,诶不是这个上面这个。Fo,结果是不是半啊?啊。好的,那看完这个以后啊来。来到我们的服务器端啊,这个时候我们可以干嘛呢?啊,我们首先呢,我们是不是需要引入。引入这个GWT。对吧,啊引入呢,那我直接啊,我也不敲了,我就用他这个。复制一下来来到我们的服务器端放到这呗,啊这呢啊统一呢,我们就都用ES6的语法了,我用cos来引,引入这个数据,引入了以后可以干嘛呢?我们可以对这个数据进行加密了,我这呢let一个token等于什么呢?GWT点啊CN,比如说我们就对这个person对象进行加密,然后呢,我写一个密钥啊叫艾V5。
04:00
那叫艾特硅谷,那这样的话呢,我们是可以生成这个token的啊,并且呢,我直接就把这个token呢返回了。来这样的话呢,我们再来看一眼啊,来到客户端。刺激一把。嗯,这报了一个错啊,报了一个什么错。嗯,他说这个失败,失败是为什么呢?啊,失败是因为我的服务器没有启动来过了,嗯,NPM走。哎,你这样吧,大家看的清楚一点,我我也可以在这儿呢,去把这个图呢,给大家打印一下啊。啊,这儿的代码我去格式化一下。嗯,好的,来重新编译一下,来来到我们的客户端把这些清掉啊走。嗯,这其实拿到了那个图N了啊,其实在服务器端呢,我也做了一个打印没有问题,那这个我们返返回给客户端啊,它是安全的啊,别人就算拿到了以后,嗯,他不知道我的密钥也没有办法去破解。
05:03
对吧,那么以后你再需要发起求验证身份的时候,你就要需要把token带给我啊,把token带给我。我拿到你的图Ken,我就去反编译,然后编译了以后呢,再去数据库查询,诶有没有这个用户不就可以了吗?在这儿呢,我给大家演示一下啊,那啊那这个呢,验证那身份,那就是反编译什么呀,反译我们的token怎么写,Let,一个result等于什么呢?等于这个G wt.very fine,我们要编译的那就是这个上面的token啊,假如说啊用户呢,不知道你的秘钥叫啥,他随便写了一个。啊,随便写了一个啊,这RO啊,上面有一个了,重复定义了,那这呢,我来一个二吧,来我们打印一下这个RO2,我们看一下结果是什么,来重新让服务器编译一次啊,我们来到客户端。
06:02
走,我这一点击。我这应该是点了吧,走点一下点一下这没有反应,为什么服务器端报错了啊,为什么报错呢?来我们往上翻。嗯。看这Jason in error are invalid signature signature呢,指的是标识的意思,在这里呢,指的是非法的一个标识,其实指的就是它。啊,我们的密钥不对,来我把这个拿过来,我们再重新编译一下啊,那下边是干净的对不对,来到我们的客户端来清掉,再刺激一下走好已经成功拿到了,来到服务器呢,我们看一下我们反变异出来对象长这样。这个里边呢,除了我们之前写的数据呢,还多了一个字段啊,这个呢,其实是一个时间戳那。对,这个呢,是GWT这个库啊,自动加进去的,那但是呢,对我们之前的数据是不是没有任何的影响啊,那这个呢,就是反编译啊,好的,那这节课啊到这儿为止呢,我们既学了啊这个如何去加密生成token啊,我们又知道了这一整套流程啊,就是说我们需要对最终的数据加密返回给客户端以后呢,发起图再过来,我们要验证身份的话,那就是对你拿过来token再反编译。
07:27
对吧,好,那这节课呢,我们先讲到这里啊。
我来说两句