SpringBootSecurity學習(26)前後端分離版之github單點登錄

單點登錄(SSO)

關於oauth2.0,最後我們再來學習一下單點登錄。前面介紹過單點登錄的定義,單點登錄(Single Sign On),簡稱爲 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。

關於單點登錄,springcloud G版本的官方文檔地址如下:

關於單點登錄的例子有很多,最常見的就是我們在百度登錄以後,百度網盤,百度知道,百度翻譯等功能網站都會自動登錄百度的賬號,還有就是qq或者微信登錄以後,其它騰訊的遊戲等app也可以一鍵登錄,等等。例子有很多。對於第三方授權的應用,不需要使用單點登錄,但是對於同一個企業內的不同服務和軟件之間的賬號共享來說,單點登錄是一個必要的功能。

SSO簡單使用github實現

spring cloud oauth對sso是有支持的,而且使用和配置非常簡單。可以使用第三方的授權服務,如GitHub,也可以自己構建授權服務。下面來用github實現一個簡單的sso。

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

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

file

clientId和clientSecret分別是:

    • bd1c0a783ccdd1c9b9e4
    • 1a9030fbca47a5b2c28e92f19050bb77824b5ad1

    而sso客戶端的配置正如上面圖片演示的一樣。下面來新建兩個項目,依賴只引入web和oauth:

    file

    項目的啓動類中需要加入一個@EnableOAuth2Sso註解:

    file

    創建兩個簡單的接口:

    file

    最後就是配置文件的配置,基本上內容和官網的示例一樣:

    file

    這裏兩個項目基本一樣,另一個項目的代碼和配置也是一樣。security不寫任何配置類,使用默認即可。

    測試

    啓動兩個項目,訪問其中一個的/user接口:

    file

    會直接跳轉到github的登錄頁面:

    file

    可以注意看一下上面地址欄中的地址,會非常熟悉。這裏可以輸入自己的github賬號,然後點擊登錄,就會自動回跳到我們原來訪問的/user地址:

    file

    可以看到,我們自己的項目自動登錄成功了,並返回了當前的用戶數據,這個用戶其實就是github的賬戶。

    現在上面的第一個項目已經登錄成功,並訪問了接口,下面來直接訪問第二個項目:

    file

    可以看到第二個項目並沒有再跳轉登錄,而是直接處於登錄狀態,並且賬號信息與前面項目的一樣。這就是簡單sso的演示。

    代碼地址: https://gitee.com/blueses/spr... 37 38

    本文由博客一文多發平臺 OpenWrite 發佈!
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章