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