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