收藏
回答

openid有什么用?为什么不直接用unionid?什么情况下openid更适合被用?

tldr;感觉openid没什么用。直接拿unionid不就可以了,openid为什么存在?openid会被deprecated吗?

----

一开始我以为微信的openid和国外的OpenID.net 的 OpenID是同个东西(OpenID由LiveJournalBrad Fitzpatrick开发,后来加入了Light-Weight Identity,Yadis,Sxip DIX protocol和XRI/i-names。)

然后发现unionid的作用其实更加像 OpenID.net之 OpenID。

那我想问下,微信的openid有什么用?大家都用openid做什么了?

openid会被deprecated吗?


最后一次编辑于  2020-03-01
回答关注问题邀请回答
收藏

5 个回答

  • 周冉
    周冉
    2020-03-02

    openId是这个用户在这个小程序里的唯一标识。每个用户肯定都有。

    unionId是这个用户在小程序绑定的开放平台里的唯一标识,如果你没绑定微信开放平台那就没有。即使你绑定了也不一定能获取得到,还得看一系列条件。https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html

    所以unionId的作用更多用于小程序、APP等多终端账号系统打通。如果你就一个小程序的话用openId就好,还不用弹授权弹框,静默方式就获取到了。

    2020-03-02
    有用 1
    回复 1
  • 何魏奇archy will he
    何魏奇archy will he
    2020-03-02

    u p d a t e


    -----

    深思一会后,又回想起陆奇之前说的一个open data与privacy的问题。我觉得我大致明白openId背后的逻辑了。 我在SO上做了个回答,大家可以来看下~

    https://stackoverflow.com/a/60479561/2041954



    2020-03-02
    有用 1
    回复
  • 苗春雨
    苗春雨
    2020-03-01

    openid是针对每个应用的id。在过户之后,所有用户的openid不会变化。

    但是unionid只是一个比较松散的联合,在应用过户之后,如果过户后从原来的开放平台里面解绑,那么unioinid可能就没有了,或者在开放平台里换了其他过户之后的账户,那么unionid就会发生变化。


    从这点上,我觉得暂时没有取消的必要。其他方面,如果一直都是在一个开发者下面,我觉的其实很多都是只要unionid就可以了。

    2020-03-01
    有用 1
    回复 6
    • 何魏奇archy will he
      何魏奇archy will he
      2020-03-02
      你的意思是 openid 更像是public key 而 unionId 更像是一个可以存放很久的cookie吗? 过户是什么意思?(我还在学中文。我看翻译说是 transfer account? transfer 去给谁?) 我还是没有get到你的意思。我对openid 的理解是 openid =  f(unionId, appId), where f 是一个hash function。 以你的看法怎么感觉 unionId 是从openid 里面 derived 出来的
      2020-03-02
      回复
    • 苗春雨
      苗春雨
      2020-03-02回复何魏奇archy will he
      在学中文???要么我用我蹩脚的英文解释一下?transfer account. 
      大概意思就是,you(your company) register this account, but another person(ohter company) want to use this account. then you transfer this account to that one. 

      the account should be authenticated(person、company)。so the owner has been changed, the openid cannot be changed. but the unionid may be changed.
      2020-03-02
      1
      回复
    • 何魏奇archy will he
      何魏奇archy will he
      2020-03-03
      万分感激!原来如此!看懂了!所以从这个角度它的实用性是更加meta一个等级了
      2020-03-03
      回复
    • 何魏奇archy will he
      何魏奇archy will he
      2020-03-03
      所以关系有点更像是 openid = f(userId, appId) && unionid = f(userId, appOwnerId)
      2020-03-03
      回复
    • 苗春雨
      苗春雨
      2020-03-03回复何魏奇archy will he
      openid = f(userId, appId)   unionid = f(userId, appOwnerId)  这个说法真差不多,不过这个appowner 可能会随着过户改变,也可能不改变(如果没有人处理),但是正常可能会处理。
      这个owner会绑定很多app,公众号,这些同一个用户会得到同一个unionid。所以我觉得你这个写法相当准确。
      2020-03-03
      1
      回复
    查看更多(1)
  • 老张
    老张
    2020-03-01

    明显是没怎么写过代码的说的话。写代码去吧,写着写着就明白了。

    2020-03-01
    有用
    回复
  • Naruto
    Naruto
    2020-03-01

    这问题有点奇特


    2020-03-01
    有用
    回复
登录 后发表内容
问题标签