00:00
好了,列位啊,咱们赶紧的来到小程序的怀抱啊,来实现我们的授权的这一个流程,因为科们在之前这张图中就说好了嘛,你先能够给我拿到open ID,你别的不用多说,那我也不希望你引导我进行注册这个流程,让我自己写用户名啊,我现在就喜欢用微信的授权,最终获得open ID作为我们用户的唯一标识,并且作为我们将来的群主的唯一标识就可以了。好吧,另外咱们继续来看一下在这个过程中我们怎么去做,不过话说呀,就获取微信授权这个流程呀,小程序是一改再改,就改了好长时间啊,这个用了很多的方法,而且有人会发现啊,就是可能在之前的视频中啊,如果那个视频它比较老,他连现在获取微信这个头像他都拿不到了啊,因为现在微信已经改成了全新的通过get user profile这个方法来获取头像和昵称这些信息。
01:00
啊,而且获取的昵称这些信息吧,还不包含国家啊,所以在这里咱们找到这个小程序的这个文档,我给大家来看一下简易小程序啊,在这里的话呢,找到这个文档中,你搜一个叫Wx.get user pro file这个方法,它这个方法的话呢,就是来获取我们的用户信息的,而这个方法在获取用户信息的时候,里面有些东西获取不到了,这个用户信息将来返回值在user iner这个字段里面,那里面的话呢,有那个一些信息啊,比如像我们的国家信息也不再返回,省份信息不再返回,城市不再返回,所以一会可能返回的时候没有这些信息啊,你列位啊哈,也别说坑人,这块请求有问题,他就是不返回了,你弄死我他也不返回呀,对吧?而在这里的话,让你看这个公告,这个公告本身的话呢,会告诉你说我们为什么为了安全呗,但实际上有意思的地方是在下面这个评价这里面啊,来活的又啊,这是国庆,我记得是国庆差不多发的。
02:00
啊,所以国庆加班吧啊,去年国庆的时候发的,在这里这种经典的图就来了啊,这个腾讯啊,这个还有这句话啊,怎么怎么样的啊,说的还是他就废弃这个借口,说废弃就废弃啊,当然在这里就是一个调侃而已,大家在这里开发嘛,没办法,只能啊在自己这种无奈之中啊,取点乐子而已,对不对啊,咱们不能说无理取闹,但是咱们无奈取乐还是可以的,好吧,OK了,咱们不说这个了,那接下来咱们来看一下哈,呃,通过这个方法上调用咱们来获取一下,就是get user profile这个方法,也就是我一点按钮之后,我要利用这个方法来获取,至少这个方法中能获取头像的信息呗。呃,在这他给了我一个测试的一个例子,在这里,然后复制一下啊,因为做过小程序开发呢,存得知道这一点呀,对吧?嗯,在这里我们可以在这个呃函数里面写好,大家可以看一眼get user profile啊,用于完善会员资料啊,然后S成功。
03:00
之后咱们这样只打印一下这个结果就可以了,res.data保存之后我们来看一下这个结果,Res打印res来点击登录,咱们可以看一下它提示我哈,说要获取我的昵称和我的头像,我感觉现在能给他是吧?哎,我就授权允许的,允许之后大家可以看一下在这个res中有什么信息啊,是不是有我们想要的这些信息啊,有里面这个user infer啊,我们的头像在这里面,我们的CT国家啊,果然不返回的零是男性是吧?啊,我们这里的话呢,这个是语言是中文的哈,还有昵称是隐啊,我的这个微信的昵称好了,都获取完了嘛,那上面这些信息的话呢,有用的话就去用啊,因为咱们有些操作的话,还要把这个加密的data,还有我们的IV传到我们的服务端啊,再服务端进行解密啊,再返回我们的一些用户的信息啊,再跟我们自己啊,这个后台中的一些信息混在一起啊等等的有很多操作。咱们现在。
04:00
而实用的只有我们这个优色中的头像信息,还有昵称信息,一会儿再结合我们的open ID,然后我们一起导入到我们的I'm的账号体系中啊,因为在这个账号体系中的话呢,他需要的就是唯一的一个不重复的ID名字,还有头像,还有我们这个人的昵称啊,咱们在这里就直接用微信授权后的昵称,咱们也不允许用户再去改什么昵称啊,如果你想将来扩展小程序的功能,你还可以在这再做调优的,好吧,那这样的话,我们就相当于拿到里面最关键的这个user信息的res.user INF这个信息,那成功之后我要干嘛呀,我得去获取我的open ID呀,因为只有这个信息加open ID,最后我才能导入到我的I'm的账号体系中,那这个时候我怎么去找我的open ID列外,你就得需要用到小程序的这个方法了,来咱们来搜一下啊,这里肯定是康之前知道了,所以就直接告诉你呗,W。
05:00
X啊,我们的微信点log方法,另外log这个方法并不能够帮助你直接获取到open ID,但这个方法呢,它会给你一个登录凭证code的,你通过这个凭证code的在获取,换取我们的用户的登录信息,包括用户在当前小程序唯一标识open ID啊,还有我们的这个开放平台下面的UNID啊,在这里还有些绘画session key等等等,我们在这里要的是我们的呃open ID这个信息,所以我应该在我们这块授完全成功之后,我应该再调用我的log in这样一个方法,然后咱们再获取这个code,再通过code去换取open ID啊,我们就在这里呗,Wx.log in login这个方法非常简单,就一个login,然后直接写一个success,在这个success的返回中的话,你就可以在这里获得到你的这个想要的信息,Data data,咱们来看一下我data是什么,咱们在这里点完之后测试一下。
06:00
点击登录之后,点击允许列位,可以看到它给了我一个返回中有一个error message哈,Loging OK,里面这个code啊,我就要这个code哈,是不是我们就要有这个code去换取我们的东西,换取什么呀?换取我们的open ID,那下面的我们的任务就是利用我们的这个获得了code去换我们的open ID,但这个换取open ID的话呢,它不能在咱们的小程序端去做了,这个时候它会告诉你哈,我们在这里的这个流程的话,来咱们往下看一下,他说拿到这个code能干嘛呀,那有效期就五分钟是吧?啊需要在开发者服务器后台啊,就是我们在我们自己的服务端啊,调用这个接口,然后用它来换取open ID等信息,咱们来看一下这个接口啊是怎么写的呢?另外也就是说你在你的服务端,你要发安安贾克斯请求,以get请求就可以了哈,然后你这块要传的信息里面有诶,APIPID列外,这是咱们。
07:00
小程序申请小程序平台的appdpcq的密钥你也都有,你也知道怎么去获取的,对吧?还有GS code中这块,哎,就换成你那个时候获取的那个code,然后再就是把后面最后这个字段写死成咱们的authorization code固定的就可以了,那这个get请求一旦在你的服务端发出去之后,我们就可以得到一个响应的Jason文件啊,Jason格式的数据,Open itd拿到我们的唯一的用户标识,哎,那这样来说,对于我们的这个开发来说,在这张图上我们的完善就是我们要想获得到这个open ID列外这个open ID对于我们开发者是怎么获取的,咱们是不是在这里在写一个我们自己的这个后台呀,因为我们要自己后端,就是我们的后端,然后后端中的话呢,我们可以拿这一个来,我在这画一条线哈,因为我们要的是这个open ID,好走,你再回来,我们在这里要。
08:00
翻过来的是code啊,我们返回来的话呢,就是我们的open ID了,哎,然后我们利用open ID去导入到我们的账号体系中就可以了,所以我们这个流程可能是把这条线的话呢,我们要进行一个什么呀,擦除的这样一个工作,我那这样的话呢,我们可能需要把这个线给重新改一下啊,我可以把这段线的话,咱们就给它不要了,另外咱们给它选用,给它删掉了,所以我们的流程应该是点完登录按钮之后啊,我们open ID的获取是在咱们自己的后端中,哎,传过去code的,它给咱们opend了,那这个时候咱们再利用我们这块的open ID,然后咱们再导入到账号体系中,也说这个过程咱们都是在我们的后端中去操作的,这样的话会告诉咱们,哎,成功了,成功了之后,然后咱们再去往我们的群组中进行设置的,所以应该是改成了这样一个流程了,对不好,接下来的话,咱们来看一下我们这里所用的开发的话呢,是我们。
09:00
们的云函数对吧?啊,但是在整个开发过程中哈,因为这个扣拿到了嘛,我在发请求了,我发到我的云函数中,云函数是咱们之前讲过的腾讯云的产品,你现在就发布到我们的腾讯云中啊,你到时候调试啊,非常不方便啊,所以在这里客们建议大家呀,哎,基于我们腾讯云的web事件函数啊,Web函数来去做啊,因为我们这种web方式的话呢,它比较好,你下载下来本地之后,你也可以在本地啊进行调试啊,所以我建议你使用这种方式,那这样的话,我们就可以找到我们的这个云函数啊,咱们跟之前一样的,就是我要创建这种云函数嘛,我首先在创建一个空的,我要把它的完整代码给下载下来,咱们就放在这个北京中的这个I'm live product这样一个命名空间中啊,如果你没有你自己创建一个,大家又不是固定的啊,随便玩就行了,在这里可能新建。
10:00
这个云函数,云函数从头开始,这个云函数可用的是web函数啊,起的这一个名字的话呢,就是我们的这个I'm的这个应用啊,所以我们I'm APP吧,这个函数名字,然后在这里我们北京运行环境的话,是咱们的node12.16这个环境啊,这都没有问题,Web函数选中了啊,接下来的代码就默认直接代码就可以了,默认触发器啊,暂时先用这个触发器吧,OK,点击完成之后,那我们这个云函数的话呢,就创建成功,创建成功啊,你把它的代码呀,完整的给下载下来,放在本地来跑列外哈,这一块的话,咱们一定要确认好了啊,创建完了,好客们跳转过来之后,来来一个什么操作,咱们诶来到代码中哈,进行这一个下载代码包,代码下载完之后啊,你就可以在你的本地中啊,我们利用nude服务器启动起来啊,我们可以来起我。
11:00
我们怎么来进行授权这段代码了,好了,我们把这段代码的话在文件夹中显示出来啊,诶怎么没有显示出来呀,在文件夹中显示好了,打开之后我们把这段代码给它捡走,导入到我们的这个代码中来,客人放在腾讯云直播的code的文件夹给它解压在这里,然后我把这个文件夹给它解压开啊,提取到啊APP这个里面来,然后我把这个代码给它删了,然后把RAPP的话呢,这样我给它起一个名字叫BG啊,叫做表示这是咱们的后台啊,然后我在我的Vs code中呀,我把它给添加到我的这个工作区来啊,在这里我们的科们腾讯云直播啊,我们的code,我们的IAPP啊BG好,添加进来之后,来把这个项目启动起来,看它能不能工作呀,嗯,我们来试一下啊,在这里就是用node,诶,为了每次改代码能够自动重启服务器,Node杠第一。
12:00
对吧,来启动这个APP这一个文件,这个时候你来访问local hosts的9000可不可以成功的local hosts的9000回车啊,Hello word完活了,所以我在这里已经写好了啊,然后这样的话,打开app.gs中,咱们可以写代码了,这个get呀,做测试的留着吧啊,将来咱们的接口会有很多啊,所以客们准备啊,在我们这个文件夹下新建一个文件夹叫API,我每一个小接口的话呢,都放在这个API里面,让我在这里啊进行注册,要不然我一会儿都得写在这,你想想我一会儿先盖A咔咔一个方式老长了代码,然后我再写APP点呢,再来一个斜杠B,你这个app.gs文件还能看吗?所以是看不了的啊,所以可在这里的想法就是啊,我们每一个小的这个接口处理函数啊,都写在这个API里面来的。比如说咱们现在要。
13:00
写的是一个微信这一个注册的这一个接口,WX啊,Register啊,Function,然后在wx register,咱们把这个函数啊给它写好,然后咱们利用我们的啊mo.export common GS规范,咱们把这个给它导出去啊,我们的后端啊,对应的将来我们最好给它改成这种AC的写法,因为里面有很多的异步啊,可文想操作起来呀更加的方便啊,所以可文首选的话呢,还是基于我们的a think来去写的,你导出这个模块,你将来呀在这里再去给它引入技来,你觉得这种写法是不是挺好的呀?WX哎,咱们在这里通过我们的require啊,在哪个文件夹,当前文件夹下的API下面,它引入进来之后,我们再注册好这个接口,然后再把这个函数啊放在这里啊,另外千万不要跑题啊,我们现在的流程就是。将来的前端是要把这个code的给咱们传过来的,然后我在这个回调函数中,哎,将来接收它进行处理,当然我传过来的时候,给你传的数据很多,包括这个code的,咱们不能变成get请求传,所以客户都是给你按照posts来去配置的,所以这块的话呢,就是app.pos的响应前端的POS的请求,把数据包括code的,包括这些用户的这些信息都给我传过来,因为将来我要往我的账号体系统中进行导入嘛,啊,所以我在这里先做一个最简单的一个测试,至少能让我能拿到前端传过来的信息呀,所以我在这里来一个什么呀,Req res啊,咱们在这里来打印一下这一个什么呀,Req.body啊,然后res.send的,我们传一个什么呢?OK,冒号一啊,这一个值这啊OK,冒号一或者特OK。
14:59
都可以啊,这样的话呢,另外可以看一下坑了,就写好了一个postose的接口,只要有人朝这个接口来发postose的请求,我们会获得到post传来参数,是不是在按1Q这样body里面呀,然后我们会给它返回啊,就是send回一个Jason的啊对象字符串OK1这样一个东西,那接下来咱们在我们的小程序端来来试一下,发这个请求试一试呗,我在这里,这里面是我的用户的个人信息,这里面是我的code,我要把他们俩都发给我们的这个接口,所以我在这里去发呗,那你想这个嵌套太麻烦了哈,所以可能在这里啊,给他们往外提一提啊,就是我们在这里来一个什么调用啊,Z放在外面去调用啊,Z奥吧这样一个方法啊,我们这个O导入方法part啊,验证并导入这一个方法,我们放在这个地方来去写的,然后到时候你成功了之后。
15:59
它那这个时候你要把你的这些字段都给我传过来,你要给我传什么字段呀?来,我在这里要给你传的这个字段有我的user infer字段res.user infer,然后我要给你传的还有我的这一个code字段,是在我的data.code里面来,那这样的话呢,我就可以在这个地方来接收它了,所以我在这里来收我的这个UC。
16:24
Infer,还有我的code,我直接在这个行参中啊进行一个解构,那至少我可以在这个函数中拿到我传来的这些信息,列外是不是点击登录之后,诶授权我们拿到的是这个啊,我们的这两个信息啊,列外可以看一下是不是在这里啊,啊没有问题啊,扣的也都在这里,都是好用的,那接下来我们就可以把它进行发送了,我们通过w.request的这个方法多熟悉呀,是吧,UR地址咱们朝这个什么呀,HDP斜杠斜杠local host,然后我们是个是9000瓦斜杠wx register,然后我们进行一个发送postose的请求,我们的method方法一定要及时的改成我们的posts的这种方式啊,这块情况不要写错了啊,然后再就对应的我们这个data的话,这不就这两个吗,一个是我们的user iner对象简写啊,我们的code啊,User iner冒号user iner code冒号cold。
17:25
然后我们传输的数据的格式,我们可以在海带中,我们给他说啊,我这次post的post的这个格式的话呢,Content-type type,咱们给它传成什么格式的呀,Application呗,因为咱们这个让他能响应它,所以我们一会啊去给它配置一下就可以了,所以这样来说是我们一会儿会发一个POS的请求,然后到我们的这个地址上啊,然后并且把这些信息传给他,最后我们在这块会有一个success,哎,我们看一下我们成功后的喜悦,能不能获得到我们的这个res这个信息,对吧,这样就可以了,好,我们来简单的测试一下我们的服务器在这里呀,已经等的好了哈,我们看一看能不能成功呢?那成功还是不成功,列位赶紧的在弹幕中告诉坑瑞吧,啊,点击登录,大家可以看一下点击允许啊,我们来看一下这里啊,这个到底成没成功,好像返回。
18:25
结果上给人感觉OK1啊,所以在这里res.data ok1诶成功了吗?客们,那你看看你有没有把这些信息传给你的后端呀,来,来到这里之后大家会发现啊,啊理发呢,客们这怎么可能呢?我pose的难道没生效吗?另外pose的这个方式啊,咱们之前呀就已经说过这个事了啊,现在再说一遍呀,就是老生常谈的问题的,要想让咱们的啊express能够解析我们的post的啊拿到这个参数,咱们在这里必须要用的一个方式的话,就是我们要导入一个叫body这样一个方法,哎,我们要require body-perer这个小模块,你列位啊,不需要安装,哎,在这里通过body p的一个注册两句话对吧,我们在响应之前进行app.use我们的body.jason方法能够解析Jason的。
19:25
还有一个body pressure,点我们的URL什么呀,诶,Urlcody的这样一个方法,然后在这里的话呢,可以对于我们的Jason,呃呃,X form your inco的格式进行编码的,这两句话加完之后,咱们现在这个no的应用才能够响应前端的post的,并且能够拿到这个值,你看列位这一次你再测一下你的小程序端能不能把这些信息给咱们post过来的呀,另外把这个信息一诶走啊,我们可以看一下在我们的后端中有没有接到呀,很成功嘛,客们啊,Body中能够获取到我们的user INF这些信息,也能够获取到我们的code这样一个信息的,你看这就成功了嘛。好了,当然这个过程的话并没有结束,我们还得进一步去写,我在这里呀,啊,啰嗦啰嗦吧,因为咱们将来这个请求估计发的次数呀,会非。
20:25
唱的多,你说我每一次都写一遍这个地址,而且wx request的也不是基于这种pro的用法啊,感觉像导法贾克斯的这query的感觉一样,就很烦人呀,所以克隆下一步就是要把这个wx request的这个小小的方法呀,进行一个简单的封装,哎,封装之后给它改造成promise结构的,而且把一些就是固定的,你想将来我这里面假入20个请求,我这里面都得写成local后的9000,等我将来上线之后,我得统一的给他改成咱们上线的那个地址,你就想一想这个麻不麻烦呀,是不是挺麻烦,所以咱们把这些地址呀,都隐藏到我们封装的这一个request的方法中就行了,这样的话我们再请求的时候,对吧,只需要传后面这个路径来朝我们的后端去发poose的请求啊,所以接下来其实就是简单的对于这个进行一个封装,这也是咱们的一个过程啊,丹尼列位啊,也不要着急啊,因为我们的。
21:25
只要封装完,剩下的就是授权部分就简单了,因为那些信息就那些对吧,那可们在这里就新建一个什么呀,在这个地方啊,咱们新建一个文件夹叫什么呀,叫U啊,专门放一些工具方法的,在工具方法中咱们新建一个叫request.gs哎,这个request.gs的话呢,就是咱们呀,一起啊给它封装起来的列位,好了,咱们来看下这个方法怎么去封装来,咱们先写好function request,哎呀,怎么被他的这个代码提示,嗯,给我下了一拘灵对吧,好了,方写完之后,咱们别忘了把这个方法的话进行一个什么导出了工作,Export default,我们的request又来了哈,这个自动普权还真强啊。好了,把这个request方法咱们作为了一个导出,而在这里的话呢,咱们就要对它进行一个封装,将来用这个方法来发请求,我们为了保证将来这个方法之后可以接点Z啊,就是我们的promise风格的,我会在这里return一个什么呀,New promise promise。
22:25
在这里会不会得到两个行参呀,是不是咱们的一个resolve,诶这一个还有一个reject,好我在这里的话呢,就可以怎么样呀啊进行我们的WX,诶这样咱们在每次啊发之前让它显示一个loading,要等成功了之后再给它隐藏掉,所以咱们也一起啊封装在这个方法里面来,所以Wx.show loading哎,我们在这里抬套给他写一个什么,正在加载中啊,然后给它来写三个小点放在后面,正在加内容1233个小点,好然后这样的话呢,相当于只要有人调用request的方法,这个楼顶宽立即会显示出来啊,然后咱们这块才是我们的request的请求地址啊,咱们这个请求的这个格式的话呢,就是我们让他保证啊,跟之前的格式一样,所以我会让他把这些所有的参数的话呢,都传进来。
23:25
都传进来,这样的话,咱们就在这里把这些参数的话都给它三个点展开就行了,所以一会调用这个request的方法来时候,你就跟当年一样的,对吧,还是一样的URL啊,还是一样的data呀,还是一样的MY的,你这样去传,哎,但是你传完之后呀,我们在这里接到之后,我们给你解构了啊,三个点展开放在这里对吧?放在这里之后我们说了这个UR二老是重复的写那个什么呀,这个local host日集啊9000这个事很不爽是不是啊,我们将来会在这里给你把这个URL部分给你重写啊,就是你这个拼上你那个里面带来这一个什么URL就行了,所以你将来在传这个调用这个方法传这个URL的时候呢,另外你只需要传这个路径部分就行了,就是斜盖wx register就行了,你不用写前面这个地址的,因为我在这给你写了吗?这不是吗啊。
24:25
堆在这里的话呢,这个效之后剩下的就是我们的哎,Success咱们写在这里面了啊,所以将来你传的那些词啊,放在这里re s,嗯,我们如果是success,咱们就走resolve这个方法,表示承诺兑现,这样的话呢,它就会执行点赞了,对吧?哎,在后面这一块的话,我们非要这一块啊,我们也一样的error,嗯,好了,这样的话我们在这里就reject这个error e好了,这个不管是成功和失败,这个楼顶框咱们都让它得消失掉,所以我在这里的话呢,再来写一个hi的这一个楼顶我们的对话框这里另外就这一段代码,你可以想一想将来你调用的感觉,你是不是会这样去调用,咱们在这里应该是我request,哎,我会在这里传这个URL,我只传这个,后面这个路径关系,我的data和我的method都正常传,但我后面可以用点赞呀,然后我后面可以用什么。
25:25
啊,我的点哎我的呃,点赞点看吃来捕获我的这个错误对吧,好的列位你可以看一下这种感觉,你看看以现在这种写法能不能啊好用呢,我直接啊,咱们来捋一捋吧,还是因为咱们现在没法直接掉它对吧,如快速如果传进来这个参数,这个对象进来之后,在这里显示出来loading框来了啊,然后在我们要注意哈,这个return或者是promise对象,所以后面可以接点Z和点看翅吧,这是没有问题的,而在这里我们这个request的方法,开始请求按照咱们传过来这个值进行展开了,展开之后URL啊,因为咱们之前少写这个路径,咱们在这里把它给重新都组装一下这个路径,然后success如果成功了,咱们就兑现承诺,Resolve调用,把最终这个res.data是传这个结果吧,然后咱们传过来,所以点这时拿到了res,就是真正的这个结果的,如果fail的请求失败,咱们走的是re。
26:25
Jack,所以我在这里就看是就拿到了这个错误的信息了啊,不管错误和失败都会走这个complete,咱们把这个楼顶框给它隐藏掉,表示这一次请求完美的结束了,甭管是对还是错,对不对,好了,那这样来说我们这个request的这个方法呀,就算封装好了,当然这个小过程的话呢,大家可以啊,这个再去好好的研究研究,看看自己能不能封装出来更好用的,当然有人说坑们,我也不要封装,我现在就要最快的把活给干完,那这个过程你跳过呗,啊,你就直接用你最原生的方式来请求就可以了,那这样我会来到我的这一个啊log页面中,哎,咱们来看一下啊,我对应的要把这个代码进行改造,我首先第一步就要来引入我的request的from,点点上一级点点上一级的U文件夹下的request列位我是在这的,所以我的点点上一级,点点上一级U文件夹下的request。
27:25
给它引入进来,引入成功之后,我会在这里再去调用的时候,就直接是request的列外传入URL,不用传这个什么路径啊,这个9000端口号域名了,Method都没有问题,还ER也得传啊,然后咱们在这里把success咱们给它删掉对吧?我直接在后面接点字就可以了,对吧?最终我在这个点这中拿到我的成功的这一个结果列外,诶这样来说的话呢,是不是就是咱们想要做的了,来咱们来看一下保存保存看有没有出错的地方,果然有出错的地方是吧?我们来看一下哪个出错的,来在这里啊,我们这一块有一个小问题,白包装time重新编译一下吧,怎么出问题了是吧?嗯,好了,重新编辑完没事了是吧,那这样的话我只要一点登录啊,最终的话,你会通过这一个封装好的方法去发这个请求,咱们来看一下数据能不能传过去啊,以及最终成。
28:25
从返回能不能收到这不就行了吗?点完之后允许收没收到呀? ok1Q我收到了从后端返回来的成功啊,而且咱们的后端也成功的通过IQ包也获取到了前端传过来的数据,所以我这个方法的话,应该是发和收的话呢,都是好用的,哎,这就挺靠谱嘛啊所以接下来的话呢,就是我们辛辛苦苦的把这个给传过来,千万别忘了哈,我们其实现在只完成了到这里这一步,就是我们辛辛苦苦的把code和user信息传到自己的后端,而咱们说了优自己的后端来去换取咱们的open ID,而咱们的后端要素的方法就是来朝这个地方来发一个guide的请求,并且把你们自己小程序的PID和secret你用我的不行列外啊,因为你根本就没有在我这个授权下面啊,所以说用这个,然后的话呢,发这个请求。
29:25
啊,然后咱们就可以来走这个微信的换取啊奥路程了,对吧?啊来咱们看看吧,在咱们的noe端,咱们也说了,安是咱们前后端同构的一个模块,所以你通过我们的来发这一个请求就可以了,就是一个get的请求呗,啊那这样的话,我们通过这一个get请求啊,利用这些信息咱们给它获取一下来吧,列位,咱们在我们的nu的代码中,咱们新开一个终端,因为我要安装默认是没有的NP mi杠杆C5啊,现在新版的NPM也不用写杠杆C5了,它一定会在你的拍点G中的话呢,已经做好了这个标记了,对吧?那这样的话呢,我们安装好了之后,那我们就可以继续的来进行请求了,所以我在这里得到这个值之后,我用的是一个AS的这种写法,那咱们ES7的a weight啊,我们的同步编程写起来。
30:25
同步的写法,但其实是异步的流程,编成了最高境界,用同步写异步,所以我会在这里,呃,Wait等待,把这个等待的结果的话呢,我们用result来接到,那为了等什么呢?等这个anxious.get请求,而这个anxious的话,咱们在这个代码中,咱们给它引入进来,对吧?直接引入anxious就可以了啊,点get,我看这个地址是这个地址是吗?我把这个地址给它完整的给它copy过来发get请求嘛,所以我在这里拷贝过来之后,里面有一对方再替换掉地址,你谁能背得过我才不要背呢啊APPID,坑要换成坑,自己的那坑直接给他粘过来就行了,科文在这直接粘一下就行了啊,科文已经找了一个地方呀,给他记得一下,我现在直接把这个地址呢给他粘过来,还有我的secret啊,AP PID secret这个code的话列外就是咱们,哎,在这传过来的后面那个字段是不变的,大家也知。
31:25
知道re eq.body什么呀,点code就能获取到,所以我在这里的话呢,对于这个东西咱们解构一下吧,Code re eq.body啊,所以我把这个code的话呢,直接就拿过来,你看一下这是不是跟咱们想法是一样的呀,我们将来啊,前端posts过来之后,我们会在这里通过user infer和code拿到了,会把这个code传到这个请求里面,而这个result.data就是咱们真正的这个数据的列外是吧?哎,因为X的请求返回之中会有一个data嘛,所以咱们在这打印一下哈,得到这个结果一定在点data里面的,因为在result还有一个点属性,咱们要的只是点,咱们看一下返回的这块有没有那个open ID那一个字段,要有open ID字段的话呢,我认为啊,我们就成功了,我们成功的获得了微信的open ID唯一标识来测试。
32:25
下吧,点击登录流程,点击这个允许最终获得了一咱们来看一下控制台中的话呢,是不是拿到了我们这个open ID的,这是微信用户的唯一的标识,也就是说你怎么换算啊都是差,只要今天我的账号登录永远能换算出来这个open ID,这个标示它是唯一的,你可以认为这是咱们,嗯,我们的微信昵称可以相同,但是这个东西它永远是不相同的啊,那这样的话呢,我在点什么呀,Open ID才是我们最终想要的这一个open ID信息,将来大家看全部全活了,诶我们在这里这张图中,我把那个user色iner传过来了,后端传过来了,而且我也换取完了open ID了,那接下来是不是利用这个user色infer和open ID,我就可以导入到我的R'M账号体系中,哎,导入到I'm账号体系中,我们就可以将来再去创建群组。哎,感觉这流。
33:25
图成好像越来越清晰了吧,列外,OK,咱们关于这一小节先到这里,下一小节咱们来看一下到底怎样导入到I'm的账号体系中呢?
我来说两句