Spring Security 實戰(zhàn)干貨:OAuth2第三方授權(quán)初體驗
1. 前言
現(xiàn)在很多項目都有第三方登錄或者第三方授權(quán)的需求,而最成熟的方案就是OAuth2.0授權(quán)協(xié)議。Spring Security也整合了OAuth2.0,在目前最新的 Spring Security 5中整合了OAuth2.0的客戶端,我們可以很方便的使用Spring Security OAuth2來實現(xiàn)相關的需求。
接下來跟著胖哥的節(jié)奏搞一個第三方授權(quán)先直觀的感受一下。假設我現(xiàn)在也不會OAuth2.0從零開始,產(chǎn)品給了一個使用碼云做授權(quán)的需求,我們該怎么實現(xiàn)它?
2. 申請授權(quán)
這就像你想去某個公司上班,你要面試并提交很多資料證明你可以滿足對方的需要,通過后公司同意你去上班,給你一個職位以及對應的權(quán)限、工號、工位。
同樣的道理,我們要去碼云申請一個授權(quán)功能,也就是在對方的開放平臺上開個授信客戶端。以后不管你是微信、支付寶還是 QQ 都是差不多的流程。申請成功后它們會給你下面這些字段概念。
?因平臺而異字段概念可能稍微有點出入,但是不會太大。
2.1 clientId
很長的一個字符串,這就是你的應用在這個的平臺的“工號”,當你請求授權(quán)時要攜帶這個clientId作為你應用的標識。
2.2 clientSecret
客戶端密鑰,就像密碼一樣用以證明你的授權(quán)請求確實來自于你的應用。這個是敏感數(shù)據(jù),要注意保密。
2.3 authorizationGrantType
授權(quán)的類型途徑,這個當你向第三方開放平臺申請時會明確告訴你可以使用的授權(quán)類型。你在請求授權(quán)時需要明確告訴第三方平臺你的授權(quán)類型。
?OAuth2.0 提供了常用的四種方式以及其它不常用的兩種方式。
2.4 tokenUri
這個是第三方開放平臺提供給你獲取access_token的接口,這個access_token是你訪問第三方開放平臺開放資源的憑據(jù)。
2.5 userInfoUri
這個是你用來獲取被授權(quán)人在第三方開放平臺的用戶信息的接口,大多數(shù)是公開信息基本不涉及的敏感信息,以達到不同平臺之間信息共享的目的。
2.6 redirectUri
回調(diào)地址,有的平臺叫callback。這有什么用呢?就像你面試留的手機或者電子信箱,面完面試官讓你回去等通知面試結(jié)果。這個redirectUri就是用來通知你授權(quán)的結(jié)果的,當然這個比面試官要特么靠譜,成不成都會告訴你結(jié)果。
?當然這里面試的例子不是特別的合適,只是方便你快速理解。
2.7 scope
這個就是授權(quán)的條目,指的是你要表明你要這個授權(quán)干什么用,某個公司發(fā)了很多 JD 有 Java 開發(fā)、Golang 開發(fā)、前端開發(fā)、測試、UI。你去面試肯定第一件事要告知面試官你面試哪個崗位一樣。
?當然關于 OAuth2.0 的
scope可能更加豐富。
3. 體驗 OAuth2.0 授權(quán)
?學習接觸一個新東西要不求甚解,先去直觀感受它,了解它表面是如何運作的,然后再深入研究。
所以我直接先放出了Spring Security OAuth2.0實現(xiàn)碼云第三方授權(quán)的DEMO,有興趣的同學先直觀感受下這個場景,后續(xù)我會由淺入深來共同學習這門技術(shù)。
3.1 使用方法
關注公眾號:碼農(nóng)小胖哥?回復?authgitee?獲取 Spring Security OAuth2.0 DEMO 后,直接運行對應的分支項目。然后瀏覽器訪問接口。http://localhost:8082/oauth2/authorization/gitee進行體驗。鎖定下方公眾號:碼農(nóng)小胖哥?后續(xù)會詳細的來分析相關的機制。

往期推薦
﹀
﹀
﹀
深度內(nèi)容
推薦加入




