首页 >后端开发 >php教程 >问一个qq互联登录的问题:一个开发者账号下的多应用之间统一用户

问一个qq互联登录的问题:一个开发者账号下的多应用之间统一用户

WBOY
WBOY原创
2016-07-06 13:53:111560浏览

我用过微信公众号登录,然后知道了微信开放平台有一个unionid,只要开发者绑定了自己的公众号或者其他应用,那么对于同一个微信用户,在当前开发者账号下的unionid是相同的,这样有利于当开发者拥有多个应用时统一账号。

比如:我有A,B两个公众号,还有一个移动应用C,网页应用D,四个应用就会有四个appid,当一个微信用户在A下授权登录,就会有一个相对于Aappid的一个唯一的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下授权登录,就会有一个相对于Aappid的一个唯一的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在其他渠道获取用户的个人信息被

猜测。。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn