闲来无事,研究了下web端接入QQ第三方登陆的相关步骤,大致学习后分为两大部分:

1.需要接入第三方接入的web开发者和腾讯服务器的交互(后端)

仔细看了下QQ开放者平台的解释说明分析了第三方登陆的业务需求,第三方登陆旨在不再本web应用下创建账号使用的是第三方账号如QQ账号 微信账号,这是如何实现的呢,QQ账号信息保存在腾讯服务器上  普通的web应用如何识别某个特定的QQ账号并实现绑定?

用户QQ登陆过程发生在腾讯服务器上,经过重定向和Cookie再次植入跳转到web应用界面 发送请求含有 openID 和authroizeInfo信息  web应用根据有时效性的特征值请求腾讯服务器获取QQ基本信息实现绑定的过程.当然具体需要申请appId,腾讯验证有接入第三方登陆的资格才可接入,这些具体流程可以查看官方文档,这里就不说了。

2.前端QQ登陆需要跳转的链接和发送的请求(前端请求过程)

跳转到https://graph.qq.com/oauth2.0/show?which=Login&client_id=100270989&redirect_uri=https%3A%2F%2Fpassport.csdn.net%2Faccount%2Flogin%3FpcAuthType%3Dqq%26state%3Dtest

其实这个界面重要的是这个页面的子页面https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&s_url=https%3A%2F%2Fgraph.qq.com%2Foauth2.0%2Flogin_jump

这种能显示头像和昵称的必须是PC端QQ登陆之后的结果, 惊奇的发现web端能获取PC端QQ登陆信息,比较好奇,研究了一下主要是走了下面的几步

//访问PC QQ本地服务9401
https://127.0.0.1:9410/?cmd=101&service=1&action=undefined&timeout=5000&_tk=0.5856267607751375&encrypt=0&_ts=1552986685280&callback=pt_qqprotect_version&wparam=&lparam=&session=

//获取token本地加密后请求
https://127.0.0.1:4301/pt_get_uins?callback=ptui_getuins_CB&r=0.7376474328452092&pt_local_tk=1828247916

返回PC端QQ账号昵称

//获取QQ用户的头像

https://ssl.ptlogin2.qq.com/getface?appid=716027609&imgtype=3&encrytype=0&devtype=0&keytpye=0&uin=877682434&r=0.9293450205955125

返回json字符串

pt.setHeader({"877682434":"https://thirdqq.qlogo.cn/g?b=sdk&k=r10kWFGqkWWdzxdvXnkxvg&s=100&t=1552979005"})

链接指向资源便是图像资源,惊奇的发现这个链接是无需token的 uin为qq账号,这个链接可查询任意QQ用户的头像,喜欢的同学试试吧!

//点击头像登陆

https://graph.qq.com/oauth2.0/login_jump

返回<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <script>
         window.parent.postMessage("{\"action\":\"qclogin_success\"}", "https://graph.qq.com");
    </script>
</head>
<body>
</body>
</html>

当然需要上下文的支持 添加cookie什么的

web端接入QQ第三方登陆获取本地QQ登陆信息流程相关推荐

  1. H5App Web端定位当前位置,获取GPS和地址信息 (高德API)

    仅支持高级浏览器 首先注册高德地图开发者账号,建立应用,获取key 页面中引入: <script type="text/javascript" src="http: ...

  2. 利用web端接口实现QQ好友列表获取、QQ群成员获取列表的实例分析

    当开放API成为历史潮流不可阻挡之时,腾讯亦只能与时俱进,但腾讯为了保持江湖的垄断地位,不会随意公开像QQ号这样的客户资源,于是乎,你能通过webQQ查询到的,也只能是用户或群的昵称,绝非QQ号码或群 ...

  3. 网页QQ第三方登录获取头像不是QQ头像而是QQ空间头像

    根据登陆成功后的accessToken和openID.app_ID组成请求语句获取QQ用户的信息 (https://wiki.connect.qq.com/get_user_info)/*获取用户信息 ...

  4. 高德地图web端接入

    1.准备阶段 进入高德开发平台(高德开放平台 | 高德地图API),登录你的账号,如果没有账号需要先注册,进行开发者的认证,这里由于我已经认证过了,所以直接注册流程就不展示了. 打开控制台,选择应用管 ...

  5. php如何实现qq第三方登录,PHP实现qq第三方登录

    除了qq第三方登录外.还有微博,微信等第三方登录 qq第三方登录,遵循oauth2.0协议 这里是说明http://www.cnblogs.com/yx520zhao/p/6616686.html q ...

  6. android获取qq消息列表,获取所有qq好友、全部群所有成员部分信息,并保存列表至电子表格文件以备份信息的爬虫...

    20200521更新详细步骤说明 52pojie的markdown支持有些问题,代码注释识别成了标题,懒得调了,大家将就一下吧,实在受不了可以访问我个人网站查看https://cjh0613.gith ...

  7. QQ网页链接打开本地QQ.exe原理

    一.观察现象 QQ推广上有相关文档 http://shang.qq.com/v3/widget.html 新建一个html,点击链接就会启动本地QQ. <html> <body> ...

  8. 如何在web端登录企业邮箱? 163企业邮箱怎么登陆?

    现在业务变多了,所以注册了VIP邮箱,发信量上可以满足要求,垃圾邮件也少了.VIP邮箱也是最为常用的商务邮箱,容量大账号稳定,而且可以注册靓号.在网上看到大家都在问邮箱注册后怎么登录?163邮箱的登录 ...

  9. web端登录需要验证码-python获取验证码数值

    这两天在写脚本,首先登录之前带有验证码的(有时效性),postman工具只能口头计算出来才能进行请求.fiddler是直接可以获取到,考虑到请求方便性,就需要实时获取动态验证码的接口并得出验证码的值. ...

  10. html5调取web端摄像头,JavaScript-web前端如何调用本地摄像头进行拍照?

    JS调用好像不行,一般都是用Flash的Com,这是写好的一个Flash调用摄像头的,参考一下吧 package { import flash.display.Sprite; import flash ...

最新文章

  1. 【算法集中营】循环冗余校验
  2. Sqlite-Sqlite3中的数据类型
  3. open source protocols
  4. 类中函数模板 typeof_Julia中的typeof()函数
  5. Leedcode9-linked-list-cycle-i
  6. golang redis获取所有key_Redis 内存分析神器
  7. 关于各种地图(百度、高德等等)的坐标类型以及相互转换
  8. C++链接和运行相关错误
  9. Ubuntu安装C++环境(VsCode 编译器)
  10. web安全day16:人人都要懂的OSI和TCP/IP协议簇
  11. Redis 3.2.4配置文件翻译
  12. FlappyBird(像素鸟)小游戏 (基于 LabVIEW 保姆级教程)
  13. 【SENCHA TOUCH】页面动画跳转切换
  14. 计算机网络基础中职期中,中职计算机网络基础期中试卷
  15. 手写笔记软件评测Notability、GoodNotes、MarginNote、OneNote
  16. 华为android9升级包,华为Mate9官方固件ROM刷机包
  17. Matting之Towards Enhancing Fine-grained Details for Image Matting
  18. 2022/7/14小记
  19. 企业最大的危机是来自于内部
  20. 我哋嘅水墨动剐曾让宫祈骏、糕填勋睇木殳咗2019年6月25日 星期二

热门文章

  1. 自我规定int string char[]
  2. linux mv文件个数,关于linux:mv一个文件,其中包含Shell脚本中的空格
  3. js获取0-1之间的随机数,获取1-10之间的随机数
  4. GridSearchCV——信用卡违约率分析示例
  5. maya表情blendshape_【UE4】人物角色MorphTarget(Blendshape) 面部表情制作方案
  6. 身体不同部位锻炼相关英语表达
  7. java计算机毕业设计咖啡馆管理系统源程序+mysql+系统+lw文档+远程调试
  8. Unity3d C# 代码动态设置(SetTexture)材质球(Material)贴图纹理(Texture)
  9. 大数据影响人类认知和行为习惯
  10. 追本溯源,回归根本:第一届区块链技术及应用峰会(BTA)·中国“区块链核心技术”分论坛预告大放送...