我想用微信实现登录。在阅读文档时,我遇到了两个不同的参数,其含义我不完全理解:openId和unionId。
有人可以解释一下这些内容到底是什么吗?据我所知,它应该是这样的:
openId - 用户的一些唯一ID,可能会不时更改
unionId - 用户的唯一ID,唯一一个始终相同的ID。相当于Google使用Google API登录时返回的唯一ID。
我在这里可以找到我阅读的文档:http://open.wechat.com/cgi-bin/newreadtemplate?t=overseas_open/docs/web/login/getting-user-profile#login_getting-user-profile
答案 0 :(得分:7)
根据我的理解,用户的开放ID因网络应用程序而异,而联合ID则保持不变。例如,您有两个使用微信登录的应用程序:W1和W2。用户将为W1分别使用openid1,为W2分别使用oepnid2,但您可以使用用户的联合ID在应用程序中唯一标识他/她。
仅当您拥有多个网络/移动应用时,开放ID才会发生变化。
希望它有所帮助。感谢。
答案 1 :(得分:1)
“为什么任何人都想使用openID”-@dcsan提出的一个很好的问题。
从api而言的话,最大区别就是unionId需要openId和access_token去取得,也就是多了一个auth步骤。
从实用角度来看,openId更多起了一种数据匿名化的作用。
另外,据我了解,
openId = f(unionId,appId),其中f是一个哈希函数,等等。
更新,可能更像=
openid = f(userId, appId)
unionid = f(userId, appOwnerId)
其中f是一个哈希函数
答案 2 :(得分:0)
当您的公司有多个官方帐户,同一个用户同时关注它们时,一个用户的开放ID就不同了。为了解决这个问题,微信开发了联合ID,以帮助识别不同的开放但相同的用户。