javascript
精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1.什么是OAuth
OAuth官網(wǎng)介紹是這樣的:
An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.
翻譯過來就是:
允許Web,移動端和桌面應(yīng)用程序在一個簡單、標(biāo)準(zhǔn)的方法中進(jìn)行安全授權(quán)的開放協(xié)議
OAuth(開放授權(quán))是一個開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站(應(yīng)用)上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。 我們現(xiàn)在常說的OAuth協(xié)議一般指的是OAuth2.0,目前大多數(shù)互聯(lián)網(wǎng)公司開放API接口都基本上都支持OAuth2.0。
2.常見使用場景
舉個例子,我們常見的微信授權(quán)登錄,當(dāng)我們下載了一款A(yù)pp(假設(shè)是Keep,我正在用的一個健身App),但我們懶得去注冊新的賬號,而我們又要使用該App的功能,如果該App提供了支持微信登錄的“懶人”功能,那么你可以直接點擊微信授權(quán)登錄。那這么做有什么利弊呢? 第一:很顯然,對客戶來說,省去了注冊的時間,更加方便,而且在微信已授權(quán)列表中,可以隨意取消對該App的授權(quán)。 第二:對App來說,可以依賴社交賬號,迅速發(fā)展用戶,且可以采集該用戶的一些信息(個人認(rèn)為,某音這方面采集分析的有點過分了)
3.OAuth登錄原理
先了解下OAuth中出現(xiàn)的幾個名詞:
- 1.Provider:服務(wù)提供商。
- 2.Resource Owner:資源所有者。
- 3.Third-Party Client:第三方應(yīng)用。
上述例子中,keep就是第三方應(yīng)用,而微信就是服務(wù)提供商,客戶就是資源所有者 用一個簡單的流程圖來描述下OAuth的登錄流程:
4.授權(quán)模式
OAuth協(xié)議中的授權(quán)模式包括:授權(quán)碼模式(authorization code), 簡化模式(implicit),密碼模式(resoure owner password credentials),客戶端模式(client credentials)。 簡化模式和客戶端模式用的相對來說比較少,現(xiàn)在比較流行的都是使用授權(quán)碼模式,也是我們學(xué)習(xí)的重點。
4.1 授權(quán)碼模式
使用授權(quán)碼模式時,第三方應(yīng)用會將用戶導(dǎo)向認(rèn)證服務(wù)器,用戶同意授權(quán)的動作會在認(rèn)證服務(wù)器上完成。授權(quán)完畢之后,認(rèn)證服務(wù)器會將用戶重新導(dǎo)向至第三方應(yīng)用,并且攜帶授權(quán)碼,第三方應(yīng)用收到授權(quán)碼之后,再使用授權(quán)碼向認(rèn)證服務(wù)器申請令牌,如果認(rèn)證服務(wù)器確認(rèn)該授權(quán)碼無誤后,則會向第三方應(yīng)用分配一個令牌。第三方應(yīng)用再使用該令牌訪問用戶在資源服務(wù)器中的資源。流程圖如下:
5. 總結(jié)
該篇文章主要是介紹一些有關(guān)OAuth協(xié)議的基本知識和認(rèn)證原理,其中重點要了解的是OAuth中的授權(quán)碼模式,目前大多數(shù)主流應(yīng)用安全認(rèn)證都是使用該模式。因為該模式相對于其他模式來說,流程是最完善、最安全的。如您看到該文后,有更好的資料可以在文章下方評論分享。感謝您的觀看!
轉(zhuǎn)載于:https://my.oschina.net/liululee/blog/3009255
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java B2B2C多用户商城 spri
- 下一篇: 最渣的 Spring Boot 文章