Maison >développement back-end >tutoriel php >问一个qq互联登录的问题:一个开发者账号下的多应用之间统一用户
我用过微信公众号登录,然后知道了微信开放平台有一个unionid
,只要开发者绑定了自己的公众号或者其他应用,那么对于同一个微信用户,在当前开发者账号下的unionid
是相同的,这样有利于当开发者拥有多个应用时统一账号。
比如:我有A,B
两个公众号,还有一个移动应用C
,网页应用D
,四个应用就会有四个appid
,当一个微信用户在A
下授权登录,就会有一个相对于A
的appid
的一个唯一的openid
(同理B,C,D
授权时就会有其它三个不同的openid
)那么当他在B
上授权时就识别不了之前A
的账号了,这样就达不到我统一用户的效果,因为A,B
都是我的啊。
现在有了unionid
之后这个问题就解决了,授权时除了返回openid
还会返回unionid
,那么据此就可以判断出此微信用户之前是用A
受过权的,那么就能识别,无需再让B
授权一次,让其直接登录就可以了。这样就达到了我有多个应用时统一账号的效果了。
呵~ 微信这个方案是极好的。
接着我看了QQ登录,发现没有这个unionid
。
于是我看了其他开放平台,人人,新浪微博这些授权不是返回的openid
,而是会得到他们真实UID
,那这样就不存在一个开发者账号下面多个应用不统一的问题了。
我现在的我问题:
1:为什么微信,qq,要用openid
而不是像微博那样用真实uid
呢?而非要自己挖个坑呢?
2:虽然微信,qq用openid
挖坑了,为什么微信开放平台用unionid
填了这个坑,而qq互联没有呢?
3:qq互联挖了坑却没有填,那我们怎么去解决这个问题,打通一个开发者账号下的多个应用授权互通呢?
补充:其实登录授权,绑定授权原理就是将授权后获得第三方平台返回的“uid”
(这里引号)与我们自己的uid
进行关联,以此来达到绑定的目的,但是qq,微信不像微博他们那样,偏偏返回个openid
,所以才会有这个帖子的问题。
附几个相关链接:
http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html
http://wiki.connect.qq.com/获取用户openid_oauth2-0
http://wiki.open.qq.com/wiki/API3.0文档
http://open.weibo.com/wiki/Oauth2/access_token
以上是我浅薄的理解,毕竟实战经验还不强,希望有经验的大神来批评指正,谢谢。
我用过微信公众号登录,然后知道了微信开放平台有一个unionid
,只要开发者绑定了自己的公众号或者其他应用,那么对于同一个微信用户,在当前开发者账号下的unionid
是相同的,这样有利于当开发者拥有多个应用时统一账号。
比如:我有A,B
两个公众号,还有一个移动应用C
,网页应用D
,四个应用就会有四个appid
,当一个微信用户在A
下授权登录,就会有一个相对于A
的appid
的一个唯一的openid
(同理B,C,D
授权时就会有其它三个不同的openid
)那么当他在B
上授权时就识别不了之前A
的账号了,这样就达不到我统一用户的效果,因为A,B
都是我的啊。
现在有了unionid
之后这个问题就解决了,授权时除了返回openid
还会返回unionid
,那么据此就可以判断出此微信用户之前是用A
受过权的,那么就能识别,无需再让B
授权一次,让其直接登录就可以了。这样就达到了我有多个应用时统一账号的效果了。
呵~ 微信这个方案是极好的。
接着我看了QQ登录,发现没有这个unionid
。
于是我看了其他开放平台,人人,新浪微博这些授权不是返回的openid
,而是会得到他们真实UID
,那这样就不存在一个开发者账号下面多个应用不统一的问题了。
我现在的我问题:
1:为什么微信,qq,要用openid
而不是像微博那样用真实uid
呢?而非要自己挖个坑呢?
2:虽然微信,qq用openid
挖坑了,为什么微信开放平台用unionid
填了这个坑,而qq互联没有呢?
3:qq互联挖了坑却没有填,那我们怎么去解决这个问题,打通一个开发者账号下的多个应用授权互通呢?
补充:其实登录授权,绑定授权原理就是将授权后获得第三方平台返回的“uid”
(这里引号)与我们自己的uid
进行关联,以此来达到绑定的目的,但是qq,微信不像微博他们那样,偏偏返回个openid
,所以才会有这个帖子的问题。
附几个相关链接:
http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html
http://wiki.connect.qq.com/获取用户openid_oauth2-0
http://wiki.open.qq.com/wiki/API3.0文档
http://open.weibo.com/wiki/Oauth2/access_token
以上是我浅薄的理解,毕竟实战经验还不强,希望有经验的大神来批评指正,谢谢。
既然供应商的API没有提供我们需要的效果,那就没办法了,而且在这个问题上我们也无法伪造。
毕竟openid这个值是唯一的并且是即时产生并验证的,无法给四个应用都传递一个通用的openid。
回到你问题:
1、“为何微博无坑而qq,有坑吗”
没有为何,新浪的程序员设计的是返回uid,而qq微信设计的是2返回openid
2、“微信填坑而QQ没有”
两个产品团队不同,没有必然性。我很久没用微信开放平台了,unionid是什么时候出现的我不知道。如果是最近出现的,那么我相信qq也会很快填坑
3、“qq如何解决多应用互通”
就目前的几分钟思考应该是无解的,既然qq需要openid去验证,而这个openid是即使产生的,那应该是没有办法的。
当然具体情况还要看他们的文档
鄙人陋见
qq的id就是qq号吧 为了防止通过id在其他渠道获取用户的个人信息被
猜测。。