【澳门葡京备用网址】反向工程解析QQ扫码登录的OAuth二流程,邮箱账号

WOW! 小编的中号QQ收到了大号QQ的邮件!

OAuth
二.0合计被广泛应用于互连网应用中,最普遍的或是就是第三方授权登录使用了。在众多选用网址中用户登录时,可以应用支付宝、微信、QQ的已有账号实行登录,这么些使用网址与Ali、腾讯共享了用户的音讯和财富。
OAuth 二.0磋商的基本思想是让请求用户财富的1方(在昂CoraFC
67第4九中学被喻为client)向能源拥有方请求访问权限,请求访问权限的长河不是因而选用用户在能源拥有方的访问权证得到,而是将用户引向财富拥有方的授权服务器(Authorization
Server),通过授权服务器授权后收获。 在方方面面OAuth
二流程中,用户一旦想让第一方(那里第一方指用户、用户注册方(支付宝、微信、QQ)之外的第二方)网址选取本身在支付宝、微信、QQ上能源(如账号、小名、头像)等消息,就供给参加3个与支付宝、微信、QQ授权服务器交互的授权进程。
图一以ENCOREFC 67第49中学授权码形式授权(Authorization Code
格兰特)形式讲述了第一方网址的授权流程。

澳门葡京备用网址,一、什么是授权码?

澳门葡京备用网址 1

澳门葡京备用网址 2

澳门葡京备用网址 3图1授权流程
大家以用户在K网址上行使QQ账号登录为例,用二个出色的开支流程解释图一:
A.
用户在已跻身K网址页面包车型地铁浏览器上向QQ的授权服务发起用户资源请求:那里Client
Identifier表示K网址在QQ授权服务器(Authorization
Server,实际利用中QQ恐怕有多少个服务器,那里抽象为贰个授权服务器)上注册的标识,Redirection
UOdysseyI代表用户授权成功后K网址的重定向U君越I,K网址使用该USportageI来接过授权码(Authorization
Code)。具体的呼吁参数和格式可参见EscortFC 674九。 B.
浏览器跳入QQ授权服务器提供的授权页面,一般该页面提供三种方法供用户授权认证:用户名/密码登录方式和贰维码扫码登录格局。
C.
在获取到用户在步骤B中的授权认证后,QQ授权服务重视定向到步骤A中辅导的重定向UPRADOI,并在重定向地址中带走授权码参数。
D.【澳门葡京备用网址】反向工程解析QQ扫码登录的OAuth二流程,邮箱账号。 K网址使用获取的授权码向QQ授权服务器请求Access
Token,请求中带上的重定向U哈弗I要和步骤A中的重定向U中华VI1致。 E.
QQ授权服务器对参数验证无误后,向K网址发送Access Token。
上边的步骤中,步骤C后向重定向U帕杰罗I举行重定向的操作是由浏览器完结的,步骤D的操作在K网址的后西安形成。K网址的后台在步骤C后收到授权码的还要,也取得了浏览器的此时此刻session(依据浏览器中的Cookie),在步骤E中获得Access
Token后,K网站的后台向QQ授权服务器获取相应用户音信,将用户信息放入当前session中后,然后重定向到K网址的主页面,那时主页面上就突显QQ用户的音讯了。

授权码是QQ邮箱推出的,用于登录第二方客户端的专用密码。

想一向在 Mac 和 BlackBerry 的「邮件」App 收发 QQ
邮箱。那样就绝不别的安装2个邮箱客户端了。可是一向加多邮箱账户输入 QQ
邮箱的账号密码是卓殊的,你必要如此设置。

 

上1节中,大家讲述了贰个头名的基于OAuth二的QQ用户第二方登录流程。流程中最中心部分是步骤B,即什么指导用户向QQ的授权服务器提供授权认证。图二显示了QQ提供的验证登录页面。

适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

先在浏览器登录 QQ
邮箱,然后在「设置-账户」下张开「POP3/SMTP服务」和「IMAP/SMTP服务」(见下图)。

小玩Flask-Mail

先到中号邮箱开启服务并获取获取授权码 

接下去看看服务文书档案?重点关怀:SSL或别的协商、服务器域名、端口、授权码。发邮件时回忆不要把服务关掉!

澳门葡京备用网址 4澳门葡京备用网址 5

 

 小规模试制一下尝个鲜。

#!/usr/bin/python
#coding=utf-8

from flask import Flask

from flask_mail import Mail, Message

app = Flask(__name__)

# 设置邮箱的配置信息
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = '小号111账号名'
app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config['MAIL_PASSWORD']  = '小号授权码' 

# 初始化邮箱实例
mail = Mail(app)


@app.route('/', )
def index():
    # 邮件消息对象
    msg = Message(
        "Hello",
        body="testing",
        sender="小号QQ@qq.com",
        recipients=["大号QQ@qq.com"]
    )
    # 发送邮件
    mail.send(msg)
    return "Send Success!"


if __name__ == '__main__':
    app.run(debug=True)

运作成功~

澳门葡京备用网址 6

 

 官方:

 

 

澳门葡京备用网址 7图贰QQ认证登录页面

协调提醒:为了您的帐户安全,改换QQ密码以及独立密码会触发授权码过期,要求再一次获得新的授权码登录。

澳门葡京备用网址 8

QQ的授权服务器提供了三种授权认证方法:一种是账号密码登录格局,一种是贰维码扫码格局。对于账号密码登录格局较好掌握,因为用户的授权认证操作是在浏览器上进行的,可由浏览器直接和QQ授权服务器交互。而二维码扫码格局,意况就更扑朔迷离1些,因为多了二个剧中人物加入,那几个剧中人物就是用户手提式无线电话机。实际上用户的授权认证操作是手机应用程式上到位的,可是提供二维码的浏览器需求了然用户手提式无线电话机的围观和验证结果,浏览器获取扫描和授权认证结果的路子是QQ授权服务器。
反向工程前须求大胆设想,大家怀恋QQ贰维码扫码登录时的光景流程是那样的:QQ认证登录页面得到QQ授权服务器发生的2维码;用户手提式有线电电话机APP扫描该二维码,并在手提式有线电话机应用程式上确认授权,该授权音信存款和储蓄在QQ授权服务器;QQ认证登录页面得到QQ授权服务器上的此番授权新闻,向授权服务器发送获取授权码请求。
在这一个流程中,QQ认证登录页面和手提式无线电话机APP是分手的多个客户端,那七个客户端之间通过二维码联系在一道并共享二维码的围观结果,QQ认证登录页面会动用什么手段从QQ授权服务器上取得手提式有线电话机APP上的授权认证结果是供给大家由此反向工程去追究的。

 

设置-账户

在3个提供QQ、微信用户登录的第2方网址上实施QQ用户扫码登录,并收集流程中的HTTP新闻,可整理出如图3所示的新闻流程(图中国国投息拾至11流程依据OAuth二协和式飞机计划,非反向工程取得)。

贰、怎么获取授权码?

澳门葡京备用网址 9

澳门葡京备用网址 10图叁信令流程 依照图3,可讲述为如下流程: 1.
用户进入第二方网址主页,并通过主页上的登录按键重定向到QQ认证登录页面。对应图三中国国投息1。
2.
QQ认证登录页面向QQ授权服务器请求生成贰维码,该贰维码有唯一标识。对应图叁中国国投息贰。
3.
用户使用手提式有线电话机应用程式扫描该二维码,并在APP中肯定授予的权柄,该扫描用户消息与肯定的授权音信保存到QQ授权服务器。
4.
QQ认证登录页面根据二维码标识不断轮询QQ授权服务器,看看是或不是有此番授权认证的音信。对应图3中国国投息三。
5.
QQ认证登录页面在QQ授权服务器上取获得这一次已经授权的新闻后,获取由服务器重临的记名用户消息。对应图③中新闻4,5,6。
6.
QQ认证登录页面遵照QQ授权服务器再次来到的音讯向QQ授权服务器请求此番OAuth2的授权码,QQ授权服务器重定向到第三方使用注册的重定向U奥迪Q5I。对应图三中消息七,八,9。
7. 第三方网址后台依据授权码向QQ授权服务器获取Access
Token,并依照Access
Token获取用户音信。对应图3中国国投息10,1一。必要专注的是:音信10和11流水线遵照OAuth2协商陈设,非反向工程获得。
8.
第三方网址后台向QQ认证登录页面重回重定向到第3方网址主页的恳求,QQ认证登录页面重定向到第三方网址主页,那时该主页中已包蕴认证登录的QQ用户新闻。

先进入安装-》帐户页面找到入口,根据以下流程操作。

开启服务

通过上一节的新闻流程分析,大家任重(英文名:rèn zhòng)而道远关怀一下QQ扫码登录的连带新闻。 a)
QQ认证登录页面请求
,对应图三中国国投息一。请求格式如下:

(1)点击“开启”

此时亟需短信验证。用发送钦定内容到钦命编号后,再点击「作者已发送」开关。

GET /oauth2.0/show?which=Login&display=pc&client_id=xxx&redirect_uri=xxx&response_type=code&scope=get_user_info%2Cadd_share HTTP/1.1

澳门葡京备用网址 11

澳门葡京备用网址 12

b) 二维码请求,对应图三中国国投息二。 请求格式如下:

(②)验证密保

表明密保

GET /ptqrshow?appid=xxxxxx&e=2&l=M&s=3&d=72&v=4&t=0.27689339003885305&daid=383&pt_3rd_aid=101372833

澳门葡京备用网址 13

翻开服务后会生成授权码,这一个授权码正是在第二方客户端登录时的密码。

该请求的对答中会设置cookie,作为该2维码的绝无仅有标识,在背后的2维码状态查询中会用到。如下所示:

(3)获取授权码

澳门葡京备用网址 14

set-cookie: qrsig=Ht-tcKP8HsOucEnJLNd4RdqfbCwooJgQ3Z2Qjp5QApi0UoDGCIgPYu8VvQ6dAE8q;Path=/;Domain=ptlogin2.qq.com;

澳门葡京备用网址 15

授权码

c) 查询贰维码扫描授权情况,对应图中音信三,肆。 请求格式如下:

3、在第二方客户端怎么设置?

在「系统偏好设置-网络账户」设置里,点击「QQ
邮箱」,输入电子邮件地址为你的 QQ
邮箱地址,密码为上一步获取的授权码。然后点登录按键。

 GET /ptqrlogin?u1=https%3A%2F%2Fgraph.qq.com%2Foauth2.0%2Flogin_jump&ptqrtoken=1441332869&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=1-0-1533114559274&js_ver=10276&js_type=1&login_sig=EJ7zhLYsxLLTzyvFt57te*RfFnoefvlyL5EPQtIynibZvYDVTFwqp73mYhBZrw15&pt_uistyle=40&aid=716027609&daid=383&pt_3rd_aid=101372833&

在第一方客户端的密码框里面输入十五位授权码举行认证。

也足以在邮箱 App 的「偏好设置… ⌘,」-「账户」里充分。

请求中cookie新闻如下:

澳门葡京备用网址 16

cookie: pt_login_sig=EJ7zhLYsxLLTzyvFt57te*RfFnoefvlyL5EPQtIynibZvYDVTFwqp73mYhBZrw15; pt_clientip=78f767d654ee2f3d; pt_serverip=612d0af17164d8cd; pt_local_token=55538618; uikey=a295803bda0158cc66a043eadd466549793036cdc18cf00adc324fe62c3dfdbb; pt_guid_sig=f1fb580c215810be91bdc81c31b0dbbf864e8530ff5bbe12a752ec79aa84096f; pgv_pvi=4603649024; pgv_si=s8250232832; _qpsvr_localtk=0.6218837724703585; qrsig=Ht-tcKP8HsOucEnJLNd4RdqfbCwooJgQ3Z2Qjp5QApi0UoDGCIgPYu8VvQ6dAE8q

增加QQ邮箱账户

cookie中的pt_login_sig和qrsig作为查询参数,保险三遍变动的贰维码只绑定四个账号。
请求的结果中涵盖当前二维码的情形,如下所示:

安装成功!

 ptuiCB('67','0','','0','二维码认证中。(1759531849)', '')

澳门葡京备用网址 17

要是用户已经在手提式有线电话机应用软件上授权认证,请求的对答中会再次来到用户这一次的登录授权标识,放在头顶的set-cookie中,如下所示(当中现身了围观用户的QQ号):

QQ邮箱设置

set-cookie: pt_guid_sig=ad3f568b9d1d721593fde21261e9110921367f8e918ee573d0290ddde03fe5a9;Expires=Fri, 31 Aug 2018 09:06:36 GMT;Path=/;Domain=ptlogin2.qq.com;set-cookie: uin=o0545602528;Path=/;Domain=qq.com;set-cookie: skey=@Xb8aQtVvd;Path=/;Domain=qq.com;set-cookie: superuin=o0545602528;Path=/;Domain=ptlogin2.qq.com;set-cookie: pt2gguin=o0545602528;Expires=Tue, 19 Jan 2038 03:14:07 GMT;Path=/;Domain=qq.com;set-cookie: superkey=iXw-EiDFksitURyqw9dWBfOH7OIowHjqdYZPbu2U2iQ_;Path=/;Domain=ptlogin2.qq.com;HttpOnly;set-cookie: pt_recent_uins=a82cd26c99dc9b53af5f945be98ce71176658eb32199788d1c479b025d8b0f7a7872d4e9cf761581865bdcff1157eae7684374b9637a77f2;Expires=Fri, 31 Aug 2018 09:06:36 GMT;Path=/;Domain=ptlogin2.qq.com;HttpOnly;set-cookie: ETK=;Path=/;Domain=ptlogin2.qq.com;set-cookie: RK=jcDM6tiRa/;Expires=Tue, 19 Jan 2038 03:14:07 GMT;Path=/;Domain=qq.com;set-cookie: ptnick_545602528=e88b8fe5b79ee7a791e8bebe2de5bca0e587af;Path=/;Domain=ptlogin2.qq.com;set-cookie: ptcz=cc528e09239038601ee0ab4b7665c65404e847c2963a19d71a266c628029ee22;Expires=Tue, 19 Jan 2038 03:14:07 GMT;Path=/;Domain=qq.com;set-cookie: ptcz=;Expires=Thu, 01 Jan 1970 00:00:00 GMT;Path=/;Domain=ptlogin2.qq.com;set-cookie: airkey=;Expires=Thu, 01 Jan 1970 00:00:00 GMT;Path=/;Domain=qq.com;set-cookie: supertoken=3346071835;Path=/;Domain=ptlogin2.qq.com;

只要忘了授权码,可以重新点击「生成授权码」重新生成。

d)
更新页面上的cookie
,对应图三中音信伍,6。重回的请求头中包括了1多级的set-cookie与登录用户有关,那里就不贴出来了。
e) 向QQ授权服务器获取授权码,对应图三中新闻7,捌。 请求格式如下:

澳门葡京备用网址 18

POST /oauth2.0/authorize

更换授权码

恳请中表单数据如下:

假如你在 Mac 账户设置了邮箱账户,iOS 也会活动同步设置。

response_type: codeclient_id: xxxxxxxxxredirect_uri: http://www.XXX.com/oauth/callback/type/qq.htmlscope: get_user_info,add_sharestate: switch: from_ptlogin: 1src: 1update_auth: 1openapi: 80901010g_tk: 1934165869auth_time: 1533114565802ui: EBF619C8-8BF2-4882-9D8D-8D7E6C0D05E1

含蓄的cookie消息如下:

Cookie: ui=EBF619C8-8BF2-4882-9D8D-8D7E6C0D05E1; pgv_pvi=4603649024; pgv_si=s8250232832; _qpsvr_localtk=0.6218837724703585; pt2gguin=o0545602528; uin=o0545602528; skey=@Xb8aQtVvd; RK=jcDM6tiRa/; ptcz=cc528e09239038601ee0ab4b7665c65404e847c2963a19d71a266c628029ee22; p_uin=o0545602528; pt4_token=kME-OHaPJ3rFmtsksNxnUcWYTP6JEWRvd2EX8DHyfAE_; p_skey=oA8SEkIxHh7-2v-XneForJ9gUH4PTgROUPCQ6YdpUzI_

QQ授权服务器依据请求中表单和cookie中的标识明确此次扫描确认结果,重回授权码。回应音讯格式如下:

HTTP/1.1 302 Moved TemporarilyServer: twsDate: Wed, 01 Aug 2018 09:06:37 GMTContent-Type: text/htmlContent-Length: 0Connection: keep-aliveKeep-Alive: timeout=50Content-Encoding: gzipLocation:http://www.XXX.com/oauth/callback/type/qq.html?code=653D0AAEA1EF7D12A4AF99AD4CDC4D41

大家经过反向工程结缘OAuth二流程分析了在第二方网址上选取QQ扫码登录的功力,分析了音讯流程与有关音讯,显然了大约的完结思路。音讯中稍加参数(如cookie中的壹些键值)是QQ特有的,含义也惊惶失措根据流程猜想出来,那就须要腾讯的小兄弟去给大家表明了。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website