00:00
下面呢,我们继续来完成微信授权登录功能,刚才呢,我们写的第一部分就是在前端页面,它跳转到后端接口进行授权,然后咱们调用微信MP service里边封装的方法进行实现,那咱们进一步来完善一下啊,首先这个参数中第一个参数啊,其是写应该不是这个,因为咱们现在在里边要得到用户信息,刚才我在配置文件中是不是写了一个路径了,它会到咱这个路径中得到用户信息,那我下面把这路径给他取一下,我就这么来做啊,在里边还是用这个润里边那个Y注解。再加上它里边的表达式,把这个路径给它取到它的路径的这个名字就这个。然后取到之后咱们做个赋值啊,这个过程我从课件中直接复制一下,就是里边的这个代码。这个拿过来啊,然后这里边写上就这个user for ul,就是你这里边当你第一步之后,它要到哪个里边得到用户信息,所以现在这部分完成,完成之后呢,最后让他有一个返回值,就是一个路径,然后咱把路径做这么一个就是跳转。
01:16
加上一个,然后加上一个叫redirect。冒号加上咱的路径,这个路径呢是调用里边的方法给咱拼接好了,里边有微信一个固定地址,包括加上参数,当你这一过程之后,他会给我们返回你的code的值,包括其他值,然后咱会到下一个方法,也就是里边的这个方法中得到用户信息,咱们一会儿会通过第八个看到,大家先知道这个过程,这个过程呢就是对应文档中的。第一部分就这里同意授权获取后的,所以咱下面就得到扣的,然后进行这个微信信息的这个获取,那咱们进一步写下啊,加上一个。
02:01
Get,提交。然后他的地址这个名字叫user info。下面写上方法,加上一个public string,然后这个名字我就user,在user中,咱们这里边得到两个值,第一个值就是微信给咱返回一个叫扣的值,就咱说那个临时票据。然后写下啊,给他加上名字code,然后加上缀code第一个,然后里边还有第二个,一会咱会看到在他拼地址中呢,在地址里边有这么一个参数,这参数名字叫state,就这个。然后参数中它有什么呢?就有你授权之后会跳转到那个地址,就是你访问,比如说我现在啊,点击里边这个就是后端开发,它会有这个后端开发这个路径,我在里边给它加上一个名字,那就叫这个蕊退ul,所以现在有两值,那下面我们来实现它的进步实现,那咱看一下啊,调用微信MP service里面有个方法叫o To Get toke传入咱的code值,这样的话能得到就是你toke它反一个对象,这个对象叫微信。
03:23
这个然后从里边呢,咱们可以取到,就是我之前说那个叫open ID。那我给他写下啊,我先加一个拆开纸处理一下。就是拿着你的code的值发送请求,然后请求之后我们的下一步操作我写到这里。获取一下open ID,微信点上get open ID,把这个得到,这个得到之后咱们做个输出,为了一会儿测试方便。就是。Open ID。
04:02
这个值,然后这个得到之后,下面呢,咱们可以得到那个微信的用户信息,比如你微信的昵称啊,微信头像等等,这个可以得到。获取微信的这个信息,那还是调用微信MP service里边有个方法叫o two。写下啊,这个get user,然后把这个对象去最它会有一个回啊,当然里面还有第二个参数,它就来个now了,最后它有一个返回值,这返回值的这个对象名字,这很好理解,微信l PU user就是你的微信这个信息,咱把这信息也做个输出,或者一会儿测试方便。这个信息啊,然后信息是个对象,咱转成这个Jason,给他返回一下,就加一个to Jason string,微信MP userr,所以现在啊,咱就把这个信息就得到了,然后得到之后后面做的就是把微信信息加到数据库,然后再做其他处理,这里边比较重要的就是这个open ID。
05:11
因为刚才提到了我们做那个模板消息的时候,是不是用到ID,当时写固定的,而各位同学肯定没地方去找那个固定值,所以你可以通过这种方式得到ID,或者查数据库把它取到,所以目前这个基本过程就完成了,那咱这里边啊,我先rena,先不让它报错,咱们先做个测试,看一下目前效果怎么样,效果如果正确的话,咱再往下执行,在测试过程中,咱为了看得更明确,我在里边呢,加上断点,然后用第bug方式看一下目前的流程怎么样,让各位同学。更好做个理解。那现在啊,我把这个启动一下啊,我现在通过底bug断点调试方式启动,然后咱们测试一下,看里面是怎么样一个执行过程,咱们来试一下啊这个过程。
06:07
然后他先启动,我再说一遍啊,在前端里边,我们判断就这个local里边有没有这个token的用户信息值,如果没有的话,那我们做这个跳转进行授权,当授权通过之后,咱们再跳转到具体界面,在授权里边我写了两个方法,第一个方法就是。调用这个接口得到code的值,然后根据code的值得到才OK,再得到open ID,包括微信的其他值,那咱下面我们来试一下啊。我说一下怎么试啊,咱们做法就是打开微信公众号,然后在里边呢,随便点一个菜单功能,比如现在我就点这个大数据,我一点。然后大家看啊,断点是不是过来了,它就到了我们这个方法中,在前端中咱做了处理,就是到了我们这个al方法中,然后咱们看啊,在方法里边我们得到的参数中有一个叫瑞ul,就是咱们最终要跳转的页面,页面终你看啊,把井号替换成了硅谷课堂,然后这是我们那个另外的一个路径。
07:16
然后在下面这个位置做了一个路径的一个拼接,咱们往下执行,大家看啊,咱看这个URL,这个路径中是什么纸,就这么长的值,你看值里边啊,我把这个值为了明确给各位,我先复制出来,或者在里面直接看也可以啊,咱就拿出来看一下这个纸它长成什么样子。好,我们啊,放到这里。然后大家看啊,这么传值,然后在值里边咱先给他区分一下啊,第一部分这个是微信一个固定的地址,为了授权,然后地址中我们拼了参数,第一个参数叫apd,就是当前这个微信公众号ID,第二个叫ul,就你这里边做跳转的路径啊,包括咱们就是这个之后我们到那个路径,这个路径一会到这个u info中径中做了编码,然后下面有一个它的这个response type,包括scope等值,然后大家看这个值啊。
08:17
一个叫state,这个值里面放的是什么呢?就是你授权之后它要跳转到什么地方去,里边有这个值,包括后面还有其他的值,所以现在这些值都有了,那下面这个之后呢,就是当你这完成之后,它会跳转到你这个路径中,Rere u Yi中,而这个路径下面就是到这里边咱们往下执行,大家看啊,现在我这里边因为之前登录过了,然后下面到了是不是user info中,在user info中咱们得到两个值,一个是code的临时票据,是他返回的,一个是这个re退URL是咱们最终要跳转那个径,就是授权之后到路径。然后往下看啊,下面掉了方法得到这个对象,然后对象得到我们这个open ID。
09:07
可大家看到是不是得到了,每个人的值都不一样,所以你可以把你那可以得到,然后得到之后往下看啊,下面再得到微信信息,就是微信l PU user在里边有它的各个值,你看这个值你看都得到了,然后得到之后,最后咱在蕊退跳转到咱们这个页面中去啊,这咱们一会儿来进一步实现,所以咱们目前把这流程应该走通了,就做到了授权过程按照微信里边的流程做的,只是它里边给咱们封装一个工具类,咱们进行实现。而咱下面要做的是什么呢?把微信信息加到咱的数据库中,最终跳转到这个就是公众号的页面中去就可以了,那咱们马上进行最后的实现。
我来说两句