SmartQQ二维码登陆接口分析
SmartQQ是腾讯在Web上推出的一款单纯的聊天工具,pc端与移动端都可以访问,接下来具体的分析下登陆流程。
网站:http://w.qq.com/
工具:这个随意能够看到http数据包就可以,浏览器一般都自带开发者工具可以通过快捷键(F12)调出。
重点来了~
提取二维码地址
二维码地址:https://ssl.ptlogin2.qq.com/ptqrshow?appid=501004106&e=0&l=M&s=5&d=72&v=4&t=0.7162917961819727(0.7162917961819727是个随机数字)
请求方式:get
登录检测(第一次登陆):
当你打开http://w.qq.com/网页时,会触发个事件,检测手机端授权。
地址:https://ssl.ptlogin2.qq.com/ptqrlogin?webqq_type=10&remember_uin=1&login2qq=1&aid=501004106&u1=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=0-0-598617&mibao_css=m_webqq&t=1&g=1&js_type=0&js_ver=10156&login_sig=&pt_randsalt=2
请求方式:get
cookie:使用二维码cookie
响应内容:
当手机端未授权时
ptuiCB('66','0','','0','二维码未失效。(3814721644)', '');
当手机端授权时
ptuiCB('67','0','','0','二维码认证中。(691021781)', '');
当手机端授权成功时
ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1& amp;uin=957019238&service=ptqrlogin&nodirect=0& ptsigx=165f2625307b4a9227fb7e973e8ca09bf5a3739efe6756744b4b6c5e5bd947ba747e8249612ee87e860b24f2ebfdc75eedd071b2ec55e6ab5f025f6ac321f3b4& amp;s_url=http%3A%2F %2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&f_url=& amp;ptlang=2052&ptredirect=100&aid=501004106&daid=164& j_later=0&low_login_hour=0®master=0&pt_login_type=3& pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0','0','登录成功!', '椰子');)
如果二维码失效,需要重新请求二维码
参数分析:
参数 1:错误码,0没有错误。
参数 2:暂未知。
参数 3:跳转URL,只有访问过跳转URL才算真正第一次登录完毕。
参数 4:未知。
参数 5:描述信息。
参数 6:未知。
第二次登录(登录跳转+正式上线):
跳转登陆
地址:提取第一次登陆成功响应内容中的参数3
请求方式:get
cookie:将上面的cookie合到一起使用
禁止重定向:真
请求个地址不知道干嘛,如果不访问有时会出现100100错误
地址:http://s.web2.qq.com/api/getvfwebqq?ptwebqq=提取第一次登陆成功响应的cookie中的ptwebqq的值&clientid=53999199&psessionid=&t=1458896274129
请求方式:get
cookie:将上面的cookie合到一起使用
协议头:Referer: http://s.web2.qq.com/proxy.html?v=20130916001&callback=1&id=1
Host: s.web2.qq.com
第二次登陆
地址:http://d1.web2.qq.com/channel/login2
请求方式:post
请求参数:r=%7B%22ptwebqq%22%3A%22提取第一次登陆成功响应的cookie中的ptwebqq的值%22%2C%22clientid%22%3A53999199%2C%22psessionid%22%3A%22%22%2C%22status%22%3A%22online%22%7D
协议头:Referer: http://d1.web2.qq.com/proxy.html?v=20151105001&callback=1&id=2
cookie:将上面的cookie合到一起使用
响应内容:
正式登陆成功~
cookie是非常重要的,cookie注意下,应该将所有的cookie都放到一起。
如果大家文章有什么问题或者哪里写的不对,可以联系的我QQ:957019238!
更新时间:2016年5月27日22:51:48
SmartQQ二维码登陆接口分析的更多相关文章
- app扫描二维码登陆
先说明一下实现原理: 如同微信扫描登陆一样,就是一种pc的自动登陆授权.在网站首页得有切换登陆的选项:密码登陆 扫码登陆 当用户切换到扫码登陆时,向服务器请求一次获得一个唯一的uukey 利用这个uu ...
- Spring Cloud OAuth2(二) 扩展登陆方式:账户密码登陆、 手机验证码登陆、 二维码扫码登陆
概要 基于上文讲解的spring cloud 授权服务的搭建,本文扩展了spring security 的登陆方式,增加手机验证码登陆.二维码登陆. 主要实现方式为使用自定义filter. Authe ...
- 第一讲 从头开始做一个web qq 机器人,第一步获取smart qq二维码
新手教程: 前言:最近在看了一下很久很久以前做的qq机器人失效了,最近也在换工作目前还在职,时间很挺宽裕的.就决定从新搞一个web qq机器人 PC的协议解析出来有点费时间以后再做. 准备工作: 编译 ...
- 基于SignalR的消息推送与二维码描登录实现
1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...
- C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...
- iOS二维码扫描IOS7系统实现
扫描相关类 二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话.我们需要用到一下几个类: AVCaptureSession 会话对象.此类作为硬件 ...
- iOS - 二维码扫描和应用跳转
序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...
- iOS开发-二维码扫描和应用跳转
iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...
- android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)
写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载 zbarLib编译project project下载0积分 bug 在2.3的系统中Hol ...
随机推荐
- php中magic_quotes_gpc函数详解
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...
- jsp语法与标签
语法: <% 多行java代码 %> 在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本.HTML标记和其他JSP元素. 举例: <% int x = 10; ...
- 避免Block的循环引用
避免Block的循环引用 什么是循环引用,什么时候发生循环引用 1 循环引用就是当self 拥有一个block的时候,在block 又调用self的方法.形成你中有我,我中有你,谁都无法将谁释放的困局 ...
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
问题 给出如下结构的二叉树: struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } ...
- Check if a string is NULL or EMPTY using PowerShell
http://techibee.com/powershell/check-if-a-string-is-null-or-empty-using-powershell/1889 Check if a s ...
- http调试工具,linux调试工具
charles Linux下Web性能压力测试工具http_load linux 下的socket 调试工具 netcat Linux下四款Web服务器压力测试工具(http_load.webbenc ...
- delphi编写dll心得, 谢谢原作者的分享。转
delphi编写dll心得 1.每个函数体(包括exports和非exports函数)后面加 'stdcall;', 以编写出通用的dll2.exports函数后面必须加'export;'(放在'st ...
- ACM2055_ctype.h_cctype
#include<iostream> int main() { using namespace std; int y,count; char x; cin>>count; wh ...
- Oracle 表分析
ANALYZE TABLE SeikyuTbl COMPUTE Statistics FOR TABLE FOR ALL COLUMNS FOR ALL INDEXES ; 一.优化器的优化方式 Or ...
- Matplotlib下载地址
http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib