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&regmaster=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二维码登陆接口分析的更多相关文章

  1. app扫描二维码登陆

    先说明一下实现原理: 如同微信扫描登陆一样,就是一种pc的自动登陆授权.在网站首页得有切换登陆的选项:密码登陆 扫码登陆 当用户切换到扫码登陆时,向服务器请求一次获得一个唯一的uukey 利用这个uu ...

  2. Spring Cloud OAuth2(二) 扩展登陆方式:账户密码登陆、 手机验证码登陆、 二维码扫码登陆

    概要 基于上文讲解的spring cloud 授权服务的搭建,本文扩展了spring security 的登陆方式,增加手机验证码登陆.二维码登陆. 主要实现方式为使用自定义filter. Authe ...

  3. 第一讲 从头开始做一个web qq 机器人,第一步获取smart qq二维码

    新手教程: 前言:最近在看了一下很久很久以前做的qq机器人失效了,最近也在换工作目前还在职,时间很挺宽裕的.就决定从新搞一个web qq机器人 PC的协议解析出来有点费时间以后再做. 准备工作: 编译 ...

  4. 基于SignalR的消息推送与二维码描登录实现

    1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...

  5. C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取

    一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...

  6. iOS二维码扫描IOS7系统实现

    扫描相关类 二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话.我们需要用到一下几个类: AVCaptureSession 会话对象.此类作为硬件 ...

  7. iOS - 二维码扫描和应用跳转

    序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...

  8. iOS开发-二维码扫描和应用跳转

    iOS开发-二维码扫描和应用跳转   序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

  9. android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Hol ...

随机推荐

  1. phpize 编译安装memcached

    下面是Memcached的安装过程: #wget http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz # tar zvxf mem ...

  2. Jsonp 解决跨域问题

    话不多说直接贴代码: $.ajax({ async: false, url: 'http://****.****.com/Handler.ashx?vueId=iwNavpicS2', type: & ...

  3. swift和 oc 混编2-备

    在Swift语言出现之前,开发iOS或OS X应用主要使用Objective-C语言,此外还可以使用C和C++语言,但是UI部分只能使用Objective-C语言. 选择语言 Swift语言出现后,苹 ...

  4. MPMediaPickerController 选取本地音频--备用

    MPMediaPickerController 与 UIImagePickerController 类似,允许用户从音乐库中选取音乐.播客.音频书. 一.创建 MPMediaPickerControl ...

  5. Ubuntu命令行下安装,卸载软件包的过程[转]

    一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 …; (2)修复安装:apt-get -f install so ...

  6. SpringMVC、Zookeeper、Dubbo使用

    联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前 ...

  7. Yii 引入 js和css

    //向控制器指定的页面注册新的css文件 Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my ...

  8. Eclipse插件管理

    Eclipse 的特色之一,就是它的插件功能.可以说, Eclipse 是一个插件的大集合,所有的模块都以插件的形式存在.那么,究竟什么是插件呢? 插件( plug-in ),即 Eclipse 的功 ...

  9. android AudioRecorder简单心得

    1.如何创建一个有效的AudioRecorder实例 Android各种设备的采样频率不同,输入的声道数也不同,如果采用固定的采样频率和声道数,那么得到的AudioRecorder不一定能够正常初始化 ...

  10. 【HDOJ】4515 小Q系列故事——世界上最遥远的距离

    简单题目,先把时间都归到整年,然后再计算.同时为了防止减法出现xx月00日的情况,需要将d先多增加1,再恢复回来. #include <cstdio> #include <cstri ...