溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

發(fā)布時(shí)間:2021-09-28 09:15:47 來(lái)源:億速云 閱讀:166 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

單點(diǎn)登錄(SSO)

關(guān)于oauth3.0,最后我們?cè)賮?lái)學(xué)習(xí)一下單點(diǎn)登錄。前面介紹過單點(diǎn)登錄的定義,單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱為 SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。

關(guān)于單點(diǎn)登錄,springcloud G版本的官方文檔地址如下:

  • https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html#_single_sign_on

關(guān)于單點(diǎn)登錄的例子有很多,最常見的就是我們?cè)诎俣鹊卿浺院?,百度網(wǎng)盤,百度知道,百度翻譯等功能網(wǎng)站都會(huì)自動(dòng)登錄百度的賬號(hào),還有就是qq或者微信登錄以后,其它騰訊的游戲等app也可以一鍵登錄,等等。例子有很多。對(duì)于第三方授權(quán)的應(yīng)用,不需要使用單點(diǎn)登錄,但是對(duì)于同一個(gè)企業(yè)內(nèi)的不同服務(wù)和軟件之間的賬號(hào)共享來(lái)說,單點(diǎn)登錄是一個(gè)必要的功能。

SSO簡(jiǎn)單使用github實(shí)現(xiàn)

spring cloud oauth對(duì)sso是有支持的,而且使用和配置非常簡(jiǎn)單??梢允褂玫谌降氖跈?quán)服務(wù),如GitHub,也可以自己構(gòu)建授權(quán)服務(wù)。下面來(lái)用github實(shí)現(xiàn)一個(gè)簡(jiǎn)單的sso。

首先要去github上面登記一下,地址如下:

  • https://github.com/settings/applications/new

這里我們不再自己去登記,而是使用官方文檔中演示的登記好的id和秘鑰:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

clientId和clientSecret分別是:

  • bd1c0a783ccdd1c9b9e4

  • 1a9030fbca47a5b2c28e92f19050bb77824b5ad1

而sso客戶端的配置正如上面圖片演示的一樣。下面來(lái)新建兩個(gè)項(xiàng)目,依賴只引入web和oauth:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

項(xiàng)目的啟動(dòng)類中需要加入一個(gè)@EnableOAuth3Sso注解:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

創(chuàng)建兩個(gè)簡(jiǎn)單的接口:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

最后就是配置文件的配置,基本上內(nèi)容和官網(wǎng)的示例一樣:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

這里兩個(gè)項(xiàng)目基本一樣,另一個(gè)項(xiàng)目的代碼和配置也是一樣。security不寫任何配置類,使用默認(rèn)即可。

測(cè)試

啟動(dòng)兩個(gè)項(xiàng)目,訪問其中一個(gè)的/user接口:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

會(huì)直接跳轉(zhuǎn)到github的登錄頁(yè)面:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

可以注意看一下上面地址欄中的地址,會(huì)非常熟悉。這里可以輸入自己的github賬號(hào),然后點(diǎn)擊登錄,就會(huì)自動(dòng)回跳到我們?cè)瓉?lái)訪問的/user地址:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

可以看到,我們自己的項(xiàng)目自動(dòng)登錄成功了,并返回了當(dāng)前的用戶數(shù)據(jù),這個(gè)用戶其實(shí)就是github的賬戶。

現(xiàn)在上面的第一個(gè)項(xiàng)目已經(jīng)登錄成功,并訪問了接口,下面來(lái)直接訪問第二個(gè)項(xiàng)目:

SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法

可以看到第二個(gè)項(xiàng)目并沒有再跳轉(zhuǎn)登錄,而是直接處于登錄狀態(tài),并且賬號(hào)信息與前面項(xiàng)目的一樣。這就是簡(jiǎn)單sso的演示。

代碼地址: https://gitee.com/blueses/spring-boot-security 37 38 

關(guān)于SpringBootSecurity中g(shù)ithub單點(diǎn)登錄的操作方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI