关于网站微博和QQ第三方的登陆

近几日由于公司业务需要,要做一个网站的第三方登陆,并且登陆之后并进行验证,只有登陆过我们手机app的第三方账号才可以登陆网站。

这边先说下oauth2.0大概的流程吧:

第三方登陆入口->跳转链接->在第三方输入账号和密码登陆->第三方调用回调函数返回给你一个code之类的->拿code请求access_token->拿access_token请求到唯一标识的openid或者uid之类的

  1. 首先做的是qq,看了下文档,其实我们的需求没有文档上的那么复杂,只是登陆一下获取openid然后拿回来验证就好了。我这边做的是按照网上的一个资料直接请求一个链接就进入第三方的登陆入口了,然后就是按照上面的流程拿到openid。当我测试时,拿请求到的openid去和我们app拿到的openid比较发现不一样的,然后我检查了下我拿到的那个openid,请求其他的接口api,发现是OK的。这我就纳闷了,问app那边,他们说是没有对openid进行任何处理。只能百度,发现腾讯对于网站登陆和手机app登陆拿到的openid是不一样的,如果要想一样得写申请信给[email protected],简直就是蛋疼。还有一点要吐槽的,请求access_token之类的接口时,腾讯返回的不是一个json串的,而是比如“access_token=FE04************************CCE2&expires_in=7776000。”之类的字符串,需要开发者自己解析的,而且请求openid时,返回的结果是callback(****)的字符串,还需要用到正则表达式的,简单让我调试了半天(楼主正则不太好)这接口真心想吐槽啊,返回格式太老了,都不更新的。而且腾讯应用信息里面的测试账号是最后一栏信息!这么重要的信息居然放最后一栏,一不小心没注意- -,也是由于我第一次开发第三方登陆
  2. 微博登陆,首先就是测试账号的编辑,有专门一栏,我感觉比较好,容易找到。返回的都是json串,比较方便。而且第二部请求access_token时就已经返回给你uid了,也是和手机端一样的,直接打通手机应用的关联。
  3. 腾讯和微博的审核时间都差不多,说是1个工作日,基本我都是2个工作日。腾讯的那个邮箱,我发了邮件过去,没人回的,还不如上次微信开发的。看来腾讯QQ这边真的有点落寞了!

你可能感兴趣的:(oauth2.0,qq,微博,php)