日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 程序員小灰
[導(dǎo)讀]我想用 QQ 賬號登陸豆瓣

低并發(fā)編程戰(zhàn)略上藐視技術(shù),戰(zhàn)術(shù)上重視技術(shù)
今天,我想登陸豆瓣,看看電影評論,陶冶陶冶情操。
但是,我從來沒注冊過豆瓣賬號,而我又懶得再注冊一個,怎么辦呢?
我打開豆瓣的官網(wǎng),笑了,原來豆瓣早就為我這種懶人想到了辦法。
懶人三步
第一步:在豆瓣官網(wǎng)點擊用 QQ 登陸。
第二步:跳轉(zhuǎn)到 qq 登錄頁面輸入用戶名密碼,然后點授權(quán)并登錄。

第三步:跳回到豆瓣頁面,成功登錄。

太方便了!
但這短短的幾秒鐘,可不簡單,我來給你說說。

上帝視角看發(fā)生了什么
這幾秒鐘之內(nèi)發(fā)生的事情,在外行的用戶視角看來,就是在豆瓣官網(wǎng)上輸了個 qq 號和密碼就登錄成功了。

在一些細心的用戶視角看來,頁面經(jīng)歷了從豆瓣到 qq,再從 qq 到豆瓣的兩次頁面跳轉(zhuǎn)。
但作為一群專業(yè)的程序員,我們還應(yīng)該從上帝視角來看這個過程。

第一步:在豆瓣官網(wǎng)點擊用 qq 登錄當(dāng)你點擊用 qq 登錄的小圖標(biāo)時,實際上是向豆瓣的服務(wù)器發(fā)起了一個請求。
http:// www.douban.com/leadToAuthorize
豆瓣服務(wù)器會響應(yīng)一個重定向地址,指向 qq 授權(quán)登錄的頁面地址。
http:// www.qq.com/authorize
當(dāng)然,這個重定向地址還附帶了一個回調(diào)地址,這是在 QQ 那邊登陸成功后需要跳回的豆瓣地址。
http://www.qq.com/authorize?
callback=www.douban.com/callback
這跳回的地址是必然的嘛,不然 QQ 怎么知道在我這邊登陸成功后我要干嘛,上桿子找人家 QQ 授權(quán)的網(wǎng)站那么多。
這部分的流程是黃色的這部分。

第二步:跳轉(zhuǎn)到 qq 登錄頁面輸入用戶名密碼,然后點授權(quán)并登錄上一步,瀏覽器接到重定向地址
http://www.qq.com/authorize?
callback=www.douban.com/callback
自然沒什么好說的,乖乖訪問過去。
這回訪問的就是 QQ 的頁面了。
用戶輸入 QQ 號和密碼,點擊授權(quán)并登陸,這里走 QQ 服務(wù)器自己的校驗邏輯,與豆瓣毫無關(guān)系。
若校驗成功,會響應(yīng)給瀏覽器一個重定向地址
www.douban.com/callback
沒錯,就是上一步傳給 QQ 服務(wù)器的 callback 參數(shù)!
但除了這個地址外,還附上了一個 code,我們叫它授權(quán)碼。
www.douban.com/callback?code=xxx
這個 code 是豆瓣服務(wù)唯一關(guān)心的事情,至于你那邊如何校驗用戶,無所謂,只要最終能給我一個 code 碼,我就認為這個用戶在你那里登陸成功了。
這部分的流程是黃色的這部分。

第三步:跳回到豆瓣頁面,成功登錄這一步背后的過程其實是最繁瑣的,但對于用戶來說是完全感知不到的。
用戶在 QQ 登錄頁面點擊授權(quán)登陸后,就直接跳轉(zhuǎn)到豆瓣首頁了,但其實經(jīng)歷了很多隱藏的過程。
首先接上一步,QQ 服務(wù)器在判斷登錄成功后,使頁面重定向到之前豆瓣發(fā)來的 callback 并附上 code 授權(quán)碼。
www.douban.com/callback?code=xxx
瀏覽器接到重定向,乖乖發(fā)起請求,此時請求的是豆瓣服務(wù)器。
豆瓣服務(wù)器收到請求后,對 QQ 服務(wù)器發(fā)起了兩次請求:
1. 用拿到的 code 去換 token2. 再用拿到的 token 換取用戶信息這個 code 和 token 都是有失效時間的,也因此保證了只要不在短時間內(nèi)泄漏出去,就不會有安全風(fēng)險。
拿到用戶信息之后,就返回給了瀏覽器。注意此時的瀏覽器上是豆瓣的首頁,豆瓣也因此可以將你的個人信息展示出來。

這部分的流程是黃色的這部分。

至此,整個過程結(jié)束。
這個破玩意,就叫做 OAuth 2.0 協(xié)議
這個流程目的是讓大家從全局了解 oauth2.0 協(xié)議實際上發(fā)生了什么,并僅僅以 oauth 的其中一種模式,授權(quán)碼模式進行講解。
如想了解更多模式,以及每次的請求和響應(yīng)的標(biāo)準齊全的參數(shù),推薦讀一下阮一峰的文章。
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
為啥要這么跳來跳去?
為什么,要這么麻煩呢?跳來跳去的。
其實之所以有這個協(xié)議,我總結(jié)起來有兩點原因:
懶 不信任是指用戶懶。
如果用戶不那么懶,直接在豆瓣上新注冊一個賬號就好了。
不信任是什么意思呢?
如果用戶信任豆瓣網(wǎng)站,那完全可以讓用戶在豆瓣網(wǎng)站輸入 QQ 的用戶名和密碼,由豆瓣傳給 QQ 服務(wù)器做校驗,并返回用戶信息。

但這是不可能的,你愿意把你的 QQ 號和密碼給豆瓣看到?
更甚者,如果 QQ 信任豆瓣,用戶也信任豆瓣,那 QQ 也可以把自己的數(shù)據(jù)庫直接拷貝給豆瓣,然后豆瓣就可以完全自己擁有一套 QQ 用戶數(shù)據(jù)了,也就可以讓用戶使用 QQ 登錄。

當(dāng)然,這也是不可能的。
所以就有了 OAuth 這種協(xié)議,你進行第三方授權(quán)時(文中的QQ),用戶名和密碼是不經(jīng)過目標(biāo)服務(wù)器的(文中的豆瓣),這保證了授權(quán)的安全性。
第三方授權(quán)服務(wù)器只給目標(biāo)服務(wù)器返回有時效性的 code 和 token,目標(biāo)服務(wù)器通過這個去第三方資源服務(wù)器,換取用戶信息,這達成了拿到用戶信息的目的。
所以總的來說,oauth 協(xié)議,就是由于三者(用戶、目標(biāo)、第三方)相互不信任,又想使用第三方服務(wù)器的授權(quán)功能,以及獲取第三方服務(wù)器存儲的用戶信息,而產(chǎn)生的一個辦法。
這個破玩意,就叫做 OAuth 2.0 協(xié)議。
哦,上面好像說過了。
了解了上述過程后,代碼自然就不難寫了。
這里我實現(xiàn)了一個極簡版的 oauth2.0 用于體驗這個過程,大家可以參考下。
項目結(jié)構(gòu)非常簡單,只有兩個模塊,分別是豆瓣和QQ,分別啟動即可。

最終效果也非常簡單清晰,下面請忍受 low 逼的顯示效果
第一步,登陸豆瓣頁面。

第二步,使用 QQ 頁面進行授權(quán)。

第三步,授權(quán)成功跳回豆瓣首頁。

好了,關(guān)于OAuth的知識就分享到這里,歡迎點贊哦~~
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉