PHP程序员

先来说一下这是怎样一个流程:

第一种就是QQ注册并登陆。

1.客户端(安卓)去实现QQ登录,获取用户的openid和access_token

2.然后获取用户的信息 存在本地,当然也可以不用存。

3 . 将用户的信息和第一步获取的openid和access_token一起上传到服务器。【这里很重要,有两种处理方式,一种是直接上传openid和access_token到服务器,然后直接在服务端做用户数据的拿取。另外一种就是这样,直接客户端获取数据后上传到服务器。这个大家择优选择嘛!】

到这里APP上的东西就介绍的差不多,剩下的去看文档吧。

4.服务端接收上传的数据,先去做登陆验证,看客户端是否是正真登陆过(目测现在很多的APP做第三方登录都没有做登陆验证,这是很有必要的,详情请参考链接=》戳我,想象一下,若你的openid被别人知道了,拿着openid就能对你的账户进行操作那是多么可怕的事情。),如果验证成功则进行下一步的数据存储与数据返回。这里要和上面的第三步结合起来,若前面只传了openid和access_token那么你在服务端的程序里就还要增加一个东西,就是去获取用户信息。这里的获取数据走的就是OAuth2.0,总之就是数据之间都是互通的。

重要的事情来拉, 重要的事情来拉,重要的事情来拉

为了这个问题我找了一个晚上了。

就是:服务端登录验证的问题。文档上说的要传openid和openkey,然而我在安卓的SDK里面并没有发现SDK能直接获取openkey

服务端调用接口需要的参数

\1.png

SDK这里能获取到的

\2.png

最后我去了开放平台仔细的找,在一个角落里发现了真相,【戳我看真相】

\火狐截图_2017-09-13T17-33-54.467Z.png

至此终于发现了,原来access_token就是openkey,这下可以放心的去做服务端的QQ登录验证了!

参考资料

QQ开放平台资料http://wiki.open.qq.com/wiki/%E7%A7%BB%E5%8A%A8%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5wiki%E7%B4%A2%E5%BC%95#API.E6.96.87.E6.A1.A3

QQ互联 http://wiki.connect.qq.com/qq%e7%99%bb%e5%bd%95


Bill Zhang

                               Thanks

评论
...

小明

有来过,666666。

4楼  2017-08-08  23:15发表