以前做微信登录仅限于微信客户端打开网页,一直用的都是微信公众号接口的网页授权得到openId来记录区别的,后来要求在PC端网页也使用微信登录,即微信扫码登录,结果发现得到的openid是跟在网页授权里得到的openid不同。这就导致用户通过微信客户端授权登录与网页扫码登录生成的不是同一个账号的问题。
那么如何解决这个问题?这就牵扯到微信的UnionID机制。
关于UnionID机制:
1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
概括来说,就是同一微信用户,对同一个微信开放平台下的不同应用,真正唯一的是unionid。
openid虽然也是用户唯一标识,但是这个openid只针对微信开放平台下的当前应用,比如当前公众号,当前移动应用,当前网站应用。这样说来,微信用户的openid应该是对用户微信ID和公众号ID(或者网站应用、移动应用ID)进过某种算法加密计算出来的。
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839
0 个评论