App使用OAuth 2.0授權(quán)碼模式授權(quán)的過程分析

OAuth是一個關(guān)于授權(quán)的開放標(biāo)準(zhǔn)焕檬,在無需用戶賬戶和密碼的情況下跃赚,允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲的私密資源(比如頭像唠帝、昵稱屯掖、性別等),目前最新的版本是2.0襟衰。

OAuth 2.0定義了四種授權(quán)方式贴铜,詳情可以參考文章

  • 授權(quán)碼模式(authorization code)
  • 簡化模式(implicit)
  • 密碼模式(resource owner password credentials)
  • 客戶端模式(client credentials)

這里只介紹授權(quán)碼模式,它是最嚴(yán)格和最完整的一個授權(quán)過程。它要求通過申請授權(quán)的服務(wù)器與授權(quán)方的服務(wù)器互動來取得令牌(Access Token)绍坝。


OAuth2授權(quán)碼認(rèn)證模式.png

下面對這些流程進(jìn)行解釋徘意,App想要進(jìn)行第三方登錄都要事先在第三方平臺申請Client ID和 Client Secret

  1. 點(diǎn)擊第三方登錄,帶上Client ID跳轉(zhuǎn)到第三方授權(quán)頁面
  2. 在用戶通過授權(quán)之后轩褐,第三方平臺會對Client ID進(jìn)行驗證椎咧,通過驗證之后返回Authorization Code作為用戶認(rèn)可的憑證
  3. 回到APP,接收到Authorization Code之后會和App的服務(wù)器進(jìn)行通信把介,并把Authorization Code傳給服務(wù)器邑退,這時APP處于等待響應(yīng)的狀態(tài)
  4. 服務(wù)器將Authorization Code和Client Secret一起發(fā)送給第三方的服務(wù)器
  5. 第三方服務(wù)器通過驗證之后會返回Access Token,這時OAuth流程已經(jīng)結(jié)束劳澄。
  6. 服務(wù)器接收到Access Token之后地技,App服務(wù)器就可以使用Access Token作為用戶授權(quán)的令牌去第三方服務(wù)平臺請求用戶的信息
  7. 第三方平臺返回用戶的信息,APP服務(wù)器在自己都數(shù)據(jù)庫創(chuàng)建賬戶秒拔,以及用第三方平臺的用戶ID和自己服務(wù)器創(chuàng)建的ID進(jìn)行關(guān)聯(lián)
  8. APP服務(wù)器返回響應(yīng)莫矗,用戶登錄成功。

上面就是整個流程的分析砂缩,流程比較好理解作谚,但是為什么用戶要先拿到Authorization Code而不是直接返回Access Token呢?

答案是為了安全

OAuth 2.0當(dāng)初設(shè)計的目的之一不強(qiáng)制要求請求授權(quán)的一方使用Https庵芭,所以如果用戶直接拿到Access Token妹懒,則必須把Client Secret一起發(fā)送給服務(wù)器,使用http的情況下任何的中間節(jié)點(diǎn)都可能遭受中間人攻擊双吆。而Client Secret是絕對要保密的眨唬。OAuth只是要求請求授權(quán)的客戶端不必一定使用https,但是對于傳輸Access Token的服務(wù)器是要求要使用Https好乐。通過這種一次性的Authorization Code就可以確保只有合法者才能交換Access Token匾竿,對于潛在的黑客攔截監(jiān)聽是無用的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔚万,一起剝皮案震驚了整個濱河市岭妖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌反璃,老刑警劉巖昵慌,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淮蜈,居然都是意外死亡斋攀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門礁芦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜻韭,“玉大人,你說我怎么就攤上這事柿扣⌒し剑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵未状,是天一觀的道長俯画。 經(jīng)常有香客問我,道長司草,這世上最難降的妖魔是什么艰垂? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮埋虹,結(jié)果婚禮上猜憎,老公的妹妹穿的比我還像新娘。我一直安慰自己搔课,他們只是感情好胰柑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爬泥,像睡著了一般柬讨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袍啡,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天踩官,我揣著相機(jī)與錄音,去河邊找鬼境输。 笑死蔗牡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅剖。 我是一名探鬼主播蛋逾,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼窗悯!你這毒婦竟也來了区匣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蒋院,失蹤者是張志新(化名)和其女友劉穎亏钩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欺旧,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姑丑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辞友。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栅哀。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡震肮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出留拾,到底是詐尸還是另有隱情戳晌,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布痴柔,位于F島的核電站沦偎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咳蔚。R本人自食惡果不足惜豪嚎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谈火。 院中可真熱鬧侈询,春花似錦、人聲如沸糯耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谍肤。三九已至啦租,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荒揣,已是汗流浹背篷角。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留系任,地道東北人恳蹲。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像俩滥,于是被迫代替她去往敵國和親嘉蕾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容