收藏
回答

小程序静默登录第一次用户无法获取UnionID

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 wx.login 客户端 6.7.3 2.2.5

小程序静默登录第一次用户无法获取用户的UnionID,只有openid,这样的话对于绑定了开放平台的小程序就无法正常使用,因为UnionID的才是唯一开放平台标识,这个静默在无法获取UnionID的情况下,业务上是不敢使用的,因为在其他平台登录后需要合并登录用户系统,所以在没有UnionID的情况下这个静默登录对于起用了开放平台的平台方作用无法当用户认证,在已授权的情况又不需要静默登录,这样的话还是需要授权登录才能获取用户的UnionID,体验依然做不好,请问有什么解决方案或者考虑一下增加这个功能

最后一次编辑于  2018-11-19  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 往事难忆
    往事难忆
    2018-11-19

    简单,openid 反查unionid, 小程序判断是否能获取到后台unionidid关联用户的flag在把功能 able出来就完了

    2018-11-19
    赞同
    回复 5
    • 2随
      2随
      2018-11-19

      关联用户的意思是两个用户吗

      2018-11-19
      回复
    • 往事难忆
      往事难忆
      2018-11-19回复2随

      我写得有歧义,   是 关注过的用户,然后才会有unionid,这就是unionid关联的用户。

      小程序先判断用户是有unionid,有就开放功能

      没有,获取得到openid,用openid查询unionid;

      然后把unionid保存到服务器,下次用户就可以通过本地存储的cookie获取unionid关联的用户

      当然其他地方的处理逻辑看你自己。

      2018-11-19
      回复
    • 2随
      2随
      2018-11-19回复往事难忆

      如果有关注这个操作,小程序就会直接返回unionid了。。,如果没有关注/授权过,有了openid也获取不到unionid的,即如果以unionid做多平台关联,创建用户就必须有unionid,即如果小程序在有opneid的情况下无法获取unionid就不能创建用户,否则小程序注册了用户,其他平台在注册的时候检测不到该用户的unionid会再创建一个用户,变成了两个用户。因为openid无法当作唯一处理(虽然理论上多平台opneid在量小的时候也基本不会重复)

      2018-11-19
      回复
    • 2随
      2随
      2018-11-19回复2随

      也就是说静默登录在有开放平台的情况下不能用做创建用户使用,只能用来检查用户是否注册过或者无感登录用的

      2018-11-19
      回复
    • 往事难忆
      往事难忆
      2018-11-19回复2随

      所以,如果只是openid的情况,你以游客给用户访问权限,等到有unionid的时候在给注册id就完了

      然后把需要登录的功能给disable掉就完了

      2018-11-19
      回复