最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 微信授权登录实践小结-小程序授权登录

    正文概述 掘金(微光船长)   2021-01-30   539

    小程序获取用户信息
    UnionID 机制说明

    开发前准备

    在微信开放平台绑定小程序:开放平台 管理中心-小程序-绑定小程序

    小程序获取UnionID途径

    微信授权登录实践小结-小程序授权登录

    • 通过 wx.login + code2Session,前提是(本项目不涉及,暂不考虑移动应用微信授权登录):开发者帐号下存在同主体的公众号,并且用户已经关注了该公众号;开发者帐号下存在同主体的公众号,并且用户在该公众号使用过微信服务号网页授权。
    • 通过 wx.getUserInfo,使用 <button open-type='getUserInfo' ></button> 拉起用户信息授权,用户允许授权取得用户信息后,发给后端解密出 unionid。

    同时有小程序应用和使用服务号网页授权的H5应用,使用第二种方式更稳妥,可保证无论用户是否关注公众号、或者是否在服务号使用过“网页授权获取用户基本信息”接口,都可取到 unionid。

    关于 wx.getUserInfo 与 wx.login

    两个方法无依赖关系,可根据需要独立调用。

    • wx.login,可获取 openid,满足一定条件也可获取 unionid(上述第一种途径)。通过wx.login获取微信code,发给后端,后端去微信服务端可换取到 openid 和 sessionKey。不使用 unionid 的项目,可使用 openid 区分用户,直接使用wx.login实现静默登录。小程序支付需要用到 openid。
    • wx.getUserInfo,可获取用户微信昵称、头像等用户信息以及 unionid。通过wx.getSetting获取用户信息的授权情况,如果用户信息authSetting['scope.userInfo']已授权,可直接调用wx.getUserInfo获取用户信息。如果用户未授权,通过<button open-type='getUserInfo' ></button>拉起用户信息授权,用户允许授权,可调用wx.getUserInfo取得用户信息。

    小程序授权登录处理的步骤

    1.调用wx.login获取微信code
    2.把微信code发给后端查询 openid, unionid, 手机号

    • 老用户:如果是已绑定的老用户,后端可根据微信code直接从微信服务端换取到 unionid,进而再根据 unionid 查询到有绑定关系的 openid、手机号等。
    • 新用户:
      如果是新用户,且满足上述获取 unionid 途径1 的条件,后端可根据微信code直接从微信服务端换取到 unionid。
      如果是新用户,且不满足上述获取 unionid 途径1 的条件,后端根据微信code只能从微信服务端换取到 openid。调用wx.getSetting查询用户是否已允许用户信息authSetting['scope.userInfo']的授权。
      • 已允许授权则直接调用wx.getUserInfo获取用户信息发给后端解密出 unionid。
      • 未允许用户信息授权则显示<button open-type='getUserInfo' ></button>按钮,用户点击按钮,拉起询问用户信息授权的弹框,用户允许授权,再调用wx.getUserInfo取得用户信息,发给后端解密出 unionid。
      新用户在上述各种条件下均已取得 unionid,显示<button open-type='getPhoneNumber'></button>按钮,用户点击按钮,拉起询问用户手机号授权的弹框,用户允许授权,取得信息发给后端解密出手机号。

    3.新老用户均已取得 openid, unionid, 手机号,把这些信息发给后端查询登录凭证 token。
    4.取得 token后,存储在 storage 与 globalData。信息存储在 storage,当小程序进程被杀掉,再次打开小程序时,globalData数据已销毁,可从 storage取登录信息,保留用户登录状态。
    以上,欢迎讨论,如有错漏也欢迎指正,希望对你有帮助?


    起源地下载网 » 微信授权登录实践小结-小程序授权登录

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元