QQ互联账号登录

本文说明的是根据某应用通过网页的qq信息来登录的过程。用途是利用QQ账号就能快速自动注册并能够登录客户应用。

从web服务器与腾讯服务器通信获取开房平台用户OpenID,再在应用服务器的平台服务器生成账号,在命名服务器生成角色ID,在Token服务器生成Token,然后返回客户端。

客户端可以根据角色ID和Token请求登录。

1、客户应用的标识

在腾讯开放平台网站申请腾讯应用,批准之后可获得的客户应用的标识id:

如client_id、oauth_consumer_key的值都是应用的id(101222571)。

腾讯验证服务器的地址:https://graph.qq.com/oauth2.0/authorize?

应用web服务器提供给腾讯服务器的回调地址(redirect_uri ):比如 http://www.ttalk.cn

2、web服务器与腾讯服务器通信

(1)申请客户应用的用户的访问令牌

申请客户应用的访问令牌access_token

https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id=101222571&redirect_uri=http://www.ttalk.cn

腾讯校验成功后会调用应用web服务器的回调地址,地址里面包含客户端的访问令牌access_token

http://www.ttalk.cn/?#access_token=4EB4F7CFD29AFB216FED819042D1B6F5&expires_in=7776000

其中:

通过用户验证登录和授权,获取Access Token,为下一步获取用户的OpenID做准备;

同时,Access Token是应用在调用OpenAPI访问和修改用户数据时必须传入的参数。

access token由每次用户登录时生成,过期时间默认为三个月,用户再次登录时自动刷新,请网站或应用做好防过期策略,或过期后提示用户再次授权。

(2)申请用户的openid

根据用户的access_token 申请用户的openid(腾讯服务器根据客户端应用为每个用户提供一个唯一id,是一个32字节16进制字符串)

https://graph.qq.com/oauth2.0/me?access_token=8F14187F81C3AA4160328873807A4F71

腾讯校验成功后,返回openid,openid为用户的分配唯一标识,以后不会改变

callback( {"client_id":"101222571","openid":"6A7F7C7C5F9D9FF02F41BAE31838C315"} );

其中:

通过输入在上一步获取的Access Token,得到对应用户身份的OpenID。

OpenID是此网站上或应用中唯一对应用户身份的标识,网站或应用可将此ID进行存储,便于用户下次登录时辨识其身份,或将其与用户在网站上或应用中的原有账号进行绑定。

(3)获取腾讯用户信息

客户应用根据该用户的access_token,openid 可以获取腾讯用户的信息

https://graph.qq.com/user/get_user_info?access_token=8F14187F81C3AA4160328873807A4F71&oauth_consumer_key=101222571&openid=6A7F7C7C5F9D9FF02F41BAE31838C315

腾讯校验成功后,返回用户信息,例如:

{ "ret": 0, "msg": "", "is_lost":0, "nickname": "云", "gender": "男", "province": "上海", "city": "闵行", "year": "1987", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/101222571\/6A7F7C7C5F9D9FF02F41BAE31838C315\/30", "figureurl_1": "http:\/\/qzapp.qlogo.cn\/qzapp\/101222571\/6A7F7C7C5F9D9FF02F41BAE31838C315\/50",
"figureurl_2": "http:\/\/qzapp.qlogo.cn\/qzapp\/101222571\/6A7F7C7C5F9D9FF02F41BAE31838C315\/100", "figureurl_qq_1": "http:\/\/q.qlogo.cn\/qqapp\/101222571\/6A7F7C7C5F9D9FF02F41BAE31838C315\/40", "figureurl_qq_2": "http:\/\/q.qlogo.cn\/qqapp\/101222571\/6A7F7C7C5F9D9FF02F41BAE31838C315\/100",
"is_yellow_vip": "0", "vip": "0", "yellow_vip_level": "0", "level": "0", "is_yellow_year_vip": "0" }

3、客户应用web服务器与平台服务器、以及浏览器前端通信

客户端应用需要根据互联账号OpenID生成客户应用账号以其唯一ID

(1)返回客户应用的互联账户

客户应用的web服务器发送用户OpenID到平台服务器,账户命名为 _qq互联账号OpenID,检查该账户是否存在,不存在则生成,存在则返回该账户的登录信息到web服务器,进而返回给浏览器前端

(2)客户应用的互联账户的生成

平台服务器生成账号,并向命名服务器请求角色ID(没有则生成),再向Token服务器请求登录Token(没有则生成),然后连同登录信息返回web 服务器以及浏览器前端。

客户端检查到浏览器返回,则回调显示角色ID和登录Token。

4、客户端账号登录

客户端根据角色ID以及登录Token请求登录,然后开始登录。参考  http://blog.csdn.net/chenjiayi_yun/article/details/46804369 (请求记密码登陆)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-08 06:05:30

QQ互联账号登录的相关文章

Destoon QQ互联一键登录审核不通过的解决方案

在QQ互联上申请帐号之后提交了审核, 后台填写APPID和KEY之后自己申请的QQ号可以正常登录,但QQ互联审核的时候一直审核不通过说是“您的网站审核未通过,原因是“点击QQ登录按钮提示登录失败或出现错误信息(无跳转.提示失败.出现错误信息)”,请确认申请符合审核标准后,再提交审核”,或者是““禁止开发商强制用户重新注册或绑定其他帐号””.错误提示图: Destoon爱好者对此问题的解决方案是:修改模板目录下的chip/line.htm模板文件,具体流程如下:在第25行查找”绑定账号“,修改替换

android 集成QQ互联 (登录,分享)

参考:http://blog.csdn.net/syz8742874/article/details/39271117 常见问题 : 1.QQ空间分享打不开不报错,但就是打不开页面 注意:有可能你写成了是这段代码 private void shareToQzone () { //分享类型 params.putString(QzoneShare.SHARE_TO_QQ_KEY_TYPE,SHARE_TO_QZONE_TYPE_IMAGE_TEXT ); params.putString(Qzone

QQ登录整合/oauth2.0认证-04-调整到QQ互联进行QQ登录

---------------------------------目录------------------------------------- QQ登录整合/oauth2.0认证-03-对第二节的代码改进 (2015-07-07 16:10) QQ登录整合/oauth2.0认证-02-跳转到QQ互联页 (2015-07-06 20:25) QQ登录整合/oauth2.0认证-01-申请appkey和appid (2015-07-06 20:05) -----------------------

[Android分享] 使用QQ账号,新浪微博账号登录第三方应用

转载--http://www.eoeandroid.com/thread-325071-1-1.html 最近公司由于项目要求,在应用中集成了QQ和新浪微博登录的功能,以前并没有接触过这方面的东西,前2天研究清楚,并实现了,写点心得和大家分享,同时也作为学习记录保留下来.    废话不说,直入正题了. 一.使用QQ账号登录第三方应用 这里的第三方应用指的当然是我们自己开发的应用. 腾讯开发平台是一个比较大的开放平台,它包括了腾讯微博开发平台,微信平台等诸多平台,而我们所需要用到的东西,都在QQ互

web端,qq互联以及微信登录接入流程(内嵌页面)总结

前言 实习过程中,我参与了web版相册管家的开发,负责登陆页面的前后端逻辑. 需要在登陆页接入QQ互联和微信扫码登陆,而且是用页面内嵌方式.回头来看其实两者都有文档指导,步骤清楚,并不复杂.但是第一次接触难免踩坑,在此梳理如下,方便今后开发参考. QQ互联 开发文档 https://wiki.connect.qq.com/%E7%BD%91%E7%AB%99%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B 应用申请 申请appid和ap

QQ登录整合/oauth2.0认证-02-跳转到QQ互联页

---------------------------目录---------------------------------- QQ登录整合/oauth2.0认证-01-申请appkey和appid ---------------------------正文---------------------------------- 在上一讲里面,主要是 要读者们 先准备一个 appid 和appkey,准备这个 可能需要一段时间审核,公司类型的可能稍微慢一点 其实 关键是 你能有一个可以绑定上域名的空

第三方登录之QQ登录(一)——QQ互联开放平台新建应用

现在这种第三方登录的应用很广泛也很方便.省得用户进行注册了.今天就来研究一下QQ登录API的使用. 首先说一下,腾讯提供了许多个的开放平台.差不多每个大的产品都提供了开放平台,比如微信.QQ邮箱,财付通等.这里面有2个比较易混的,一个是QQ互联,一个是腾讯开发平台.QQ互联主要是为了给第三方网站或移动应用提供登录信息.而腾讯开发平台,则是为托管型的应用(平台应用和移动应用)提供服务的.不过现在QQ互联正在往腾讯开发平台上迁移. 这是QQ互联官网中关于网站接入流程的wiki:http://wiki

Discuz3.1登录QQ互联显示redirect uri is illegal(100010)的解决

QQ互联最近也是BUG不断,引起了很多用户的不满,从早前关闭群组功能,到发布2.0接口标准,引发系列站长用户的连锁反应.而Discuz从X3开始,为了应对QQ互联的2.0接口标准,采用了云平台来整合QQ互联,也就是说用户不用再像以前一样去QQ互联里申请APPID,而是在云平台中直接填写绑定QQ就行了,Discuz的云平台会自动帮你获取一个APPID并进行封装提供给用户使用,虽然更简单化了,但问题也不少. Discuz升到3.1版后,QQ互联最多的问题之一就是点击QQ登录时显示:redirect

Thinkphp3.2添加QQ互联和新浪微博一键登录功能

Thinkphp3.2添加QQ互联和新浪微博一键登录功能 1 2 3 分步阅读 现在很多网站都有 QQ互联 和新浪微博 一键登录功能,国内很多php开源项目的代码都是使用thinkphp框架编写的,但是thinkphp框架如何添加QQ互联 和新浪微博  一键登录功能呢? 工具/原料 Thinkphp3.2版本源码 QQ互联 和新浪微博 申请到的 APPID和APPKEY. 方法/步骤 一:到腾讯QQ互联上申请APPID和APPKEY.申请地址: http://connect.qq.com/ 如同