記一次 SSO 單點登入實現

傻夢獸發表於2018-12-02

今天被上級提了需求,上級需要一個地方登陸,多個站都能訪問的需求。

SSO英文全稱Single Sign On,單點登入。SSO是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登入對映到其他應用中用於同一個使用者的登入的機制。它是目前比較流行的企業業務整合的解決方案之一。

SSO 簡單點來說嘛 就是一個地方統一登入後管理麼多個站公用登入狀態。

我們這裡說的“站”,是網站的意思。別以為手機什麼都能訪問 SSO 只能解決網站的問題,並不能處理多端登入問題

SSO 實現也是 和你 用 jwt 的方式拿使用者資訊是差不多的。只不過Oauth2 還需要 登入,而SSO不需要登陸了。可以先這樣簡單的理解吧

大致的 SSO 流程是這樣的。

image.png

舉個簡單的例子 www.test1.com 登入 在test1站點的程式中,使用爬蟲原理,傳送使用者資訊去請求SSO程式校驗使用者資訊。 然後SSO系統校驗成功後放回一個Token給使用者,其實這裡和我們一般小廠使用的Token 原理是一樣的。只是SSO再這裡做了一個簡單的重定向 然後在網站1種把Token儲存到Cookie中,然後網站一在302重定向到 網站2 如下圖 www.test2.com?user_token=xxxxx 的頁面中把token儲存後,再重定向放回到網站1,造成假象,讓使用者以為只是做了登入網站一而已。

相關文章