00:00
好了,那讲完这个自定义模板呢,那这节课呢,再给大家讲一个比较重要的东西啊,在我们课件的第八章。那第八章啊,8.7叫小程序获取用户的唯一标识open ID。那这个时候呢,我们想一下啊,我们之前呢讲过了啊,我们通过微信点get your info也好,或者是通过那个button弹出授权窗口也好,来我们可以干嘛呢?我们是不是可以拿到一些用户的基本信息呀。啊,为什么叫基本信息呢?因为拿到的这些信息里面只有什么用户的昵称,比如说nickname啊,还有什么啊用户的头像等等,那这些大家想想看,他其实都不能作为我们用户的唯一标识。唯一标识很重要,可能有同学说昵称不行吗?你要注意啊,微信的那个用户名是可以有重复的啊,这是其一,而且一般的昵称呢,是由用户起的,尤其是我们国内啊,那有很多是中文或者啊或者是英文吧。
01:03
这些呢,都是没有加密过的,而这些数据作为唯一标识的话很危险,尤其是在做支付的时候。所以我们一定要去拿一下用户的唯一标识,叫open ID。注意啊,之前我们用过什么?我们用过一个东西叫appd,那就是在我们小程序后台登录的主页开发里面。哎,在开发设置,我们在这儿是不是用到过一个东西叫APPID啊,那这个东西呢,你要注意啊,它是开发者的ID,这个是给我们开发人员用的,让你拥有一些开发权限而已。而我们接下来要做的是获取用户的唯一标识。好的,那么课件里面呢,也给大家列了这个具体的流程啊,包括说官网的一些地址,那这儿呢,给大家列出来了,那这个时候呢,我们直接先去看官网啊,看官网,那么之前这些接口我就关掉了,来到官网里面,首先我们找到这个API里面。
02:12
在API里面呢,往下有个开放接口,那么点开这个开放接口啊,第一个登录这有一个东西呢,叫微信点logging。这个方法呢,是用来去获取登录凭证code的。什么叫登录凭证呢?就是证,呃,证明你当前的用户呢。哎,访问了我的小程序呢,并且授权了我的小程,呃,小程序可以拿到你的基本信息而已,就是给你一个临时的凭证,证明你访问了我的小程序,那么拿这个凭证,我们进而去换取用户的登录信息。包括用户的唯一标识open ID以及本次登录的会话密钥。哎,什么叫绘画密钥呢?绘画指的是对话,其实就是你这一次。
03:03
那发请求。对吧,拿数据的过程,那么如果说为了数据安全的话呢,通常我们会加一个密钥,密钥的话就是对你的原始数据再次进行加密,这个就好像啊,比如说我们去看一些谍战片的时候啊,通常来说我们说有电台对不对?两个电台在通信的时候,注意啊,传过来的数据我们能够直接用吗?并不能,我们是不是需要对应的密码本去翻译一下。也就是说,之前传过来的数据是加密以后的,相当于是通过固定的密钥去给它加密一样。好的,那么我们知道了有这个API以后呢,还不够啊,大家看后边在哪有一个叫小程序登录的链接,我们去访问一下啊。在这里边呢,有关于获取用户唯一标识的一个详细的说明,它是一个图示,那是一幅图。
04:00
那么在这幅图里边,一共分为这么三方,小程序客户端。我们自己的服务器端。哎,微信的服务器端。嗯,这三方,那么具体的流程是什么样的呢?我们一起来看一下啊,首先我们需要在客户端通过微信点login去拿一个code。拿到空的以后呢,我们需要发请求,把空的呢发给我们的。自己的服务器,我们自己的服务器拿到code以后打卡,他需要发请求给谁啊?给我们微信的服务器,进而去换取什么用户的唯一标识。哎,那这个时候发起求呢,必须要携带三个参数,三界合并,分别是a pidb secret以及code。扣子是由客户端发起球带过来的,而这两个,那我们这儿并没有强调要发起邮过来,对吧,说明这是服务器端已有的。
05:06
对了吧,哎,说明这是服务器端已有的。好的,那这两个数据在哪呢?诶什么叫服务器端已有呢?其实就是之前啊,已经放存放在服务器端而已,这个东西我们也能拿到啊,在哪呢?在我们后台开发主页ABPID我们已经用过很多次了,就是它AB APP secret,其实就是刚才我们说到这个密钥。啊,那这个secret呢,大家没有生成过的话,注意看啊,右侧你们这儿的两个字呢,应该叫生成。啊,你可以点击一下它啊,和我接下来的操作一模一样,点击一下它,那么需要我们验证一下身份。啊,验证一下身份,那这个时候呢,我们去扫码,用微信扫码啊,手机上确认一下过来,那接下来我们能看到的是这个页面,在这里边呢,有PID也有APP密钥,注意啊,这有个复制,我先点击复制一份,下边呢是告诉你了啊,这个东西呢,不会明文存储在开发平台上,并且呢,已复制保存好,保存好该密钥,当你一点击确认关闭的时候啊,这个密钥你就又看不到了。
06:18
刚才呢,我已经复制了啊,那我们接下来要用啊,所以呢,我呢先把这个密钥呢,给它存到我们的本地这。啊,先放到这儿啊,待会儿呢,我们要使用啊,放到这儿,然后我们保存一下来,嗯,那这个呢,就先放到这儿好的,那知道了这三个数据的来源,那我们再看啊,拿到了open ID以后呢,这说自定义登录态与这个关联,其实呢,就是将用户的唯一标识与与应用户的其他信息绑定在一起。啊,该从数据库的,从数据库对吧,该加密的加密,加密完以后呢,我们需要返给前端一个自定义登录态。
07:04
说白了,我们要返回当前用户的身份,通常来说,我们可以返回一个什么token。返回一个token。啊,用户拿到这个标识要干嘛呢?把这个标识存入到storage,那么以后再发起业务请求的时候呢,需要携带这个标识,携带标识的目的是为了让用户验证你的身份,进而去查询你对应的数据,最终再返回业务数据,好的,那这个呢,是一整套这个获取open ID的流程啊,那我们可以写一下。来到我们当前的项目,那这是测试模板呢,接下来呢,我们再写一个啊,我们要测试什么呀,获取这个open ID来获取用户的唯一标识,嗯,啊,唯一标识open ID呗。
08:03
嗯,然后呢,我们把这个标题的内容也换一换啊,下边呢,我这来一个button,那这个呢啊就是获取open ID,嗯,当我们点击这个button的时候呢,我们去获取啊,所以呢,我们给它来一个点击事件,这呢就叫一个啊。啊haler啊,Get open ID吧,好的,那么对应的回调我们需要到这个other GS里边是不是去定义一下,嗯,这个呢,是获取这个啊用户啊open ID的回调,然后呢,我们把这个哎给它丢过来,在这里要注意当我们诶这应该是open ID啊。你把这个也换一下吧。嗯,当我们点击想要获取用户的唯一标识的时候,我们首先要干的事情是先获取什么这个登录凭证,嗯,然后我们需要将这个登录凭证。
09:11
嗯,将登录凭证啊,发送给谁呢?发送给我们的服务器,获取登录的凭证特别简单,我们只需要调一下微信点log就好了,里边打卡只有一个timeout的参数,也不是必须的,所以说啊,这个code呢,一定是在成功的回调里面去拿的,来来到我们的啊代码这微信点login,在这里我们直接去写什么这个success啊,成功的回调,那么在这里我们看一下他最终给我们出的数据啊,Conslo res,好的,现在过来打开我们的控制台啊。来,这是这个button啊,注意看这个button默认是不是居中了,那说明它有默认的样式。对了吧,啊,没有问题啊,这跟上边挨的太近了啊,密密麻麻的看着不好看对吧,不好看怎么办呢?我们看一下啊,嗯,给他来几个空的标签。
10:11
重新让它编译一下。嗯,空标签什么,嗯,不管用啊,那怎么办呢?嗯,空标签不管用,这样吧,我给他啊整两个这个隔开好的,那这样的话呢,我们区分开啊,要不然上下就太乱了,呃,我们接下来在这去测来我们点击一下这个button走,你看啊微信的log那个成功的回调里面是不是一个对象。对象的扣来就是我们要用的东西啊,所以呢,现在啊过来。啊,打卡这儿呢,我又打开一个东西,啊,是我们的服务器啊,待会儿呢,我们要去写服务器的代码,所以呢,我先提前给大家打开过来,来在这里呢,我们能够拿到这个code了,Let,一个code等于什么res.code没有问题,而接下来我们要做的什么这一步对吧?那我们要将这个登录凭证发给我们的服务器端。
11:11
对吧?哎,那这个时候呢,我们需要去服务器端呢,自己去写一个接口啊,那接下来呢,我会带着大家去写服务器端的内容啊,所以呢,这节课我们先讲到这里啊,我们主要是拿了下用户的登录凭证扣。
我来说两句