微信小程序> 小程序登录并与公众号账号打通

小程序登录并与公众号账号打通

浏览量:5399 时间: 来源:捕风的紫色鸢尾

首先明确两个概念:

openid : 小程序用户唯一标识openid 

UnionID : 微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的

所以,如果我们只是小程序登录,我们需要获取“openid”作为用户的唯一标识,即普通登录,如果我们需要小程序用户既是公众号授权用户,

公众号用户也是小程序用户,即账号数据互通,我们就需要获取用户的“UnionID 作为用户的唯一标识了

普通登录流程图:

小程序

  1. 通过小程序开放接口wx.login获取code
  2. wx.request发起后台(我们自己的后台登录接口)登录请求,传入code
  3. 后台开发人员在我们的服务器端调用微信api,使用code换取openid和session_key
  4. 后台返回登录状态,登录成功

通用用户登录过程:

    这时我们需要使用UnionID 作为用户的唯一标识,UnionID 在wx.getUserInfo的返回参数encryptedData中,而且encryptedData因包含敏感信息,所以是加密数据。想要wx.getUserInfo返回encryptedData需要withCredentials 设置为 true 才行 ,而withCredentials 为 true需要先调用wx.login接口获取sessionkey,以用于encryptedData的解密。

所以登录流程如下所示。

  1. 通过小程序开放接口wx.login获取code
  2. 获取code后,将code通过服务器接口传入后台换取sessionkey与code
  3. 将sessionkey传入getUserInfo方法
  4. 在getUserInfo方法中调用小程序开放接口 wx.getUserInfo获取用户授权
  5. wx.getUserInfo方法设置参数withCredentials 为 true
  6. 若用户同意授权并授权成功,将encryptedData,sessionkey,iv通过开发者服务器接口传入后台,后台通过encryptedData的解密或UnionID 和用户信息,然后做用户数据处理并返回信息
  7. 将服务器返回信息通过 wx.setStorage存入本地缓存
  8. 若用户拒绝授权,调用showOpenSetting方法,弹出提示框提示用户接受授权,并点击确定时调用openSetting方法进入用户授权设置页
  9. 用户设置授权成功后重新调用login方法,若用户依然未设置授权继续弹出提示用户授权弹出框

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎