收藏
回答

关于微信登录的逻辑 wx.login()的问题?

官方的微信登录能力优化说明


如果需要串联pc端的扫码登录是需要 UnionID的。

官方UnionID 机制说明


现在问题来了,wx.login()这个接口本身是用来静默登录,通过后端拿到openId建立账号的,但串联pc端的扫码登录,h5应用的授权登录这些则需要UnionID。而获取UnionID的方式就是上图的6种。想通过wx.login()静默登录建立账号则只能通过2,3种方法。但用户如果是第一次使用这个小程序,没有关注公众号,更不存在同主体下授权过移动应用,那这小程序是不是就没办法通过wx.login()+code2Session的方式静默登录,建立账号。还是我的登录逻辑理解有错,有更好的方式实现登录请告知。


最后一次编辑于  2019-08-13
回答关注问题邀请回答
收藏

3 个回答

  • 马克不思
    马克不思
    08-13

    是不是获取完unionid、openid之后,再通过用户授权拿到手机号,拿着手机号跟自己用户库userid绑定的手机号匹配,如果存在,就在userid绑定unionid、openid,不存在再新建userid,并绑定微信拿到的unionid、openid、手机号,这样会不会好点呢。

    08-13
    有用
    回复
  • 老张
    老张
    2019-08-13

    第一条。任何人都可以凭第一条拿到unionid,只需要绑定了开放平台,不需要其他条件。

    2019-08-13
    有用
    回复 2
    • Mo
      Mo
      2019-08-13
      我知道,我一开始以为wx.login()是设计用来静默登录,现在看来这个接口唯一用处就是取到openID。对于需要账号互通的小程序,无论如何都是需要授权才能取到unionID,所以整个登录逻辑就得改了。
      2019-08-13
      回复
    • 老张
      老张
      2019-08-13回复Mo
      openid还是云函数最方便;unionid还是先用云函数获得,判断没有再走第一条。
      2019-08-13
      回复
  • nickname
    nickname
    2019-08-13

    是的,必须要满足文档内说明的条件

    2019-08-13
    有用
    回复 2
    • Mo
      Mo
      2019-08-13
      那这个wx.login()接口作为静默登录的意义岂不是很尴尬。为什么一定要关注公众号或授权过同一主体下应用才能通过code获取unionID。
      2019-08-13
      1
      回复
    • Mo
      Mo
      2019-08-13
      我能理解用户头像昵称这些信息需要授权才能获取,但unionID不是属于我们平台方,为什么也需要授权才能获取
      2019-08-13
      回复
登录 后发表内容
问题标签