1.获取code
微信获取code的方式很简单,直接使用wx.login命令就可以返回code值。
2.将code传递给后台
然后就需要将获取到的code传递到后台
使用request来传递数据,这里的地址是我随便写的,8080后面的?code=+code是代表要传递的值,这个code就是我们在第一步获取到的code,当调用成功后在success中就可以返回一个值,
注意request中method方法默认为GET,在这里我改为post方法了。
3.后台返回数据,通过数据判断当前用户是否登录
第二步返回的值,在这一步中判断是session还是token,其中session代表用户未登录。token代表用户登录。
这里建议用户在第二步打印一下res.data的,看一下返回的值,我这里返回的res.data是一个对象SESSION_KEY,对象里面还有一个SESSION.KEY。
4.用户获取返回数据
然后我们就可以根据第三步中返回的值来确定做不同的事情:
如果返回token,那么用户就是已经授权过的,我们就直接获取用户信息
还是request请求,这里有一点注意的地方,就是将获取的token放到header中传递(我们后台是这样要求的,貌似也是应该这样操作),这里res.data就是获取到的数据了。
如果用户没有授权,这里就需要用户先授权,因为小程序改版的原因,必须用button按钮来写用户授权按钮
这里的open-tpye是用户授权的关键,bindGetUserInfo就是我们写在js中的方法。那么进行授权呢?
这里就会打印用户信息,一共五个,一般应该都是将后面三个有用。到这一步我们就完成了授权操作,这些值都是要传递给后台的。
传递给后台的值有五个个:session,rawData, signature, encyptedData, iv。
传递值的方式还是request。
这次的传递因为有五个值,所以将传递的数据写在data中了。data中wx.getStorageSync('key')是我将session做了缓存。
其他四个值就是授权中获取到的。传递方式是post,调用成功之后这里返回的值是token,我们需要保存这个token。
然后执行有token的方法,这样就获取到用户数据了。
这就是整个流程,这里贴一张后台同事发给我的流程图:
原文地址https://blog.csdn.net/qq_35394820/article/details/80469029