00:00
好了,我们继续啊,上节课呢,我们是呃,跑通了这个从前业端发请求给我们的服务器端,然后呢,从我们的服务器端是不是发请求给腾讯的接口呀,然后呢,并且顺利的拿到了我们的open ID,哎,在这个u info对象里边,好,那这一节课呢,我需要对我们的代码稍微改进一下啊,假设我们拿到了open ID,就是u iner.open ID对吧?那拿到了这个以后,假设我要返回给前端,我应该怎么写?现在我问一下答家,我能不能这样写,直接返回u iner.open ID?很明显不行,为什么,那那这个时候呢,我们先来到我们的客户端看一下啊,你看这这服务器没有响应,因为服务器端这儿报错了,你想这个UR info,我是不是在这个回调定义的方法啊,并且呢,我们以上的这这一段代码,它是一个异步任务啊,异步任务,所以呢,我们这儿返回什么内容,必须要等到它的执行结果,对吧?哎,在这儿呢,我们怎么去改进呢?
01:15
大家要看这哎FLY.get调用完是不是可以点z.catch呀,那看到这个以后说明什么?说明点get方法的返回值是一个promise的实例对象,只有是promise的实例是否才才能点让的点catch进行后续的语法啊,所以呢,呃,我会这样去做啊,点认点catch我们就不要了,我们能不能继续的利用它的返回值是个promise对象用这一套呢?然后呢,我们是不是先给这加一个a think,那这样的话呢,其实我就可以哎直接定义个变量是不是接收它的返回值啊,那下边这些哎我们就不要了啊,那这样做有个什么好处呢?就是我这儿这一行代码什么时候执行呢?你上边的义务任务执行成功以后,好,那在这呢,我们还是去打印一下这个result啊,看一下啊,顺便呢,我们打印个data。
02:15
哎,刚才我们不是拿到了个贝塔了吗?来呃,我们应该是保存一下,让它重新编译一下UR infer这儿啊,这儿还有报错啊,我们先来一个呃,临时返回的数据A来那这个时候大家看result data是吧,还是那个我们想要的对象对吧?哎,我们这儿呢,最好是写成u infer,因为它是跟用户的信息最后相关的啊,相关的,并且呢,这个u ino.data我们要知道啊,它是一个什么。爱是一个Jason的。对象你最好是给他反编译一下u in for,就说等于哎Jason点2PASS,把这个u in for是不是丢进来,哎,不应该是u in for啊,应该是u in for.data呃,那这样吧,Let一个result等于它,那接下来呢,我们去result.data那是不就是我们想要的UR in,那这呢我们就不要了,好呃,讲完这个以后,我们拿到了open ID,那我们简单的测试一下啊我。
03:29
把这个返到我们的浏览器端,看一下能不能拿到,呃,这儿呢,来来到这个network看一下response打开是否就open ID呢,已经跑到我们的客户端了,哎,虽然说跑通了,但是我得说我们这样的操作是不可行的啊,不可行的,因为啥你不能把用户的open ID直接返回给浏览器端。那这样的话呢,呃,这样做有什么不好的地方呢?你直接返回给浏览器端,那浏览器端以后在业证身份是不是还要把open ID再带过来,甚至是他拿到你的open ID,有可能都能跟腾讯的接口直接对接。
04:12
啊,这样的话安全隐患很大啊,而且呢,在我我们刚才看这个小程序官网的这张图上,他也说你拿到了这个先去自定义你的登录状态,返回登录状态,但是他没有直接说返回open ID对吧?那在这儿呢,这节课教大家哎,怎么去自定义登录状态,那其实呢,在这儿呢,就是呃,实际的开发流程,我们应该是将啊用户的open ID啊存入数据库啊用户的open ID存入数据库有什么好处呢?哎,将这个数open ID存数据库干什么呢?那以后这个open ID就是用户的唯一标识,用户的所有信息应该是跟他关联的,比如说用户的user I name叉叉上,然后呢,比如说用户有多少钱,哎哇哇哇,那再去读这些信息,应该是根据open ID来读,所以说它很重要啊,很重要在这儿呢,我们就不也是哎存入数据库这个过程了,那大家得知道这一套啊,那有了open ID可以做这些事情,那我们如何去自定义啊登录状态呢?哎,其实就是根据哎用户的这个open ID和什么,哎和刚刚我们能看到的,它有一个30K去干嘛去进行嗯,加密生成啊图。
05:53
这个ton呢才是啊,返回给谁的前端的,嗯,好,那在这呢,我们要自定义登录状态生成通ER的话呢,再给大家去推荐一个库啊,这个库呢,来我们来到github上面再去搜一下。
06:14
好,这个库呢,叫接着啊web,然后呢token。来第一个就是我们需要的啊,我们进来去看一下这个Jason bab token怎么用,首先第一步我们要用它还是去安装啊,为了节省时间呢,我这边一边装,我这边一边说来装的同时我们来看一下,呃,往下那就是有案例啊,有案例第一步我们要引入这个库,那这其实人家都给你演示了,这个引入了以后是个对象,它有个方法sing。好,这个方法有什么用呢?那后边这儿就是你要加密的内容,而我们需要它加密的其实就是我们刚刚拿到的那个对象,里边包含了open ID和session key,后边这呢是我们对这个加密进行的附属的数据,也说我会根据这个标识以及这个对象混合起来去给它加密,让你的安全性更高一些啊,那这儿是生成了一个token,好,知道了这个以后,来我们去验证一下啊,这个东西下载完了啊,我们上边第一步是去引入这个库,对吧?那至于说下边怎么用呢?哎,我们应该是在。
07:36
拿到了我们的UR info之后,在这儿去对呃信息open ID和那个session哎,Key进行加密,用到的步骤就是它,那这呢,我们去换成一个token啊,Let,好,那这要加密的内容其实就是这个u infer。
08:03
对吧,那后边这个字段呢,你是这为什么要加它,大家看着啊,我们直接对这个进行加密的话,很有可能别人能反编译出来,对吧,但是呢,我再加一个哎,你编译的难度会高很多,比如说我这儿写一个at硅谷,那这一把呢,我们在后端呢,去输出一下这个token,并且呢,我把这个token呢返给前端来,呃,写完这些呢,我重启一下服务器啊n PM start。好,启动了以后,我们来到前端来看一眼,嗯,这说是什么非法的,非法的是啥意思呢?诶后台这也没有报错啊,没有报错,我们再去刷新一下看一眼。好,现在来到network,我们看一下咱这是不是能拿到一乘六东西啊,一长串啊,这是一个图,然后呢,在服务器端,这其实不是也能拿到吧,对吧?哎,也能拿到,那这个呢,是加密生成的图坑字段,它一共有三部分组成啊,大家看这儿,看这样吧,我把这个呃给大家拿出来啊,给大家拿出来三部分啊三部分呃,这三部分内容呢,我们放到这儿,为什么说三部分,你可以看一下,它中间的是以点隔开的啊,一个是头部,一个是pay漏啊,其实这两个呢,都是加密的目标对象转换过来的,那最后一部分呢,其实就是当前加密的一个时间啊,加密的时间这个不是我们关心的,现在呢,我们已经申请了toer,并且是把将toer返回给前端了。
09:52
对吧,那这个通ER其实就是相当于我们的自定义登录状态,哎,To k,好,这节课呢,我们先讲到这里,来视频听一下。
我来说两句