前端單點登錄(SSO)


單點登錄的理解:

單點登錄(SSO)是整合企業系統的解決方案之一,旨在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。

要實現單點登錄,就需要先了解域名之間的關系和格式,域名分為頂級域名(也稱主域名和一級域名)、二級域名、三級域名等。

頂級域名:cnblogs.com

二級域名:i.cnblogs.com

三級域名:aa.i.cnblogs.com

 

單點登錄流程(拿VUE項目做案例):

我們登錄成功后,后台會返回一個token給我們,我們需要把它存到Cookie里面,方便后面使用。然后請求接口的時候,會在接口帶一個token過去給服務器,做為驗證當前系統是否已經登錄,或者登錄過期的依據。

vue請求頁面接口的時候,做一個請求攔截,如果在Cookie里面有token,則直接請求數據,正常進入頁面;如果沒有token,說明項目沒有登錄,則控制路由跳轉去登錄頁面。

所以只要在不同級別的域名下,獲取保存在Cookie里面的token就可以了,只要在設置cookie的時候把domain設置為主域名,就可以在其他二級、三級域名下找到token,這就是主要流程了。

 

單點登錄的實現代碼:

/**
   * Cookies.set傳三個值,第一個是cookie的名稱,第二個是設置token,第三個是路勁和cookie的域名
*/
Cookies.set(
   "name", //  設置cookie的名稱
   "value",  //  設置token
   {
     path: "/", //   這里不能把/去掉,否則會出現bug,可能導致找不到domain
     domain: "cnblogs"  //  設置主域名(關鍵點)
   }
)

退出登錄的時候,把設置的這個Cookie清除就可以了:

Cookies.set(
   "name", //  清除的cookie的名稱
   null,
   {
     expires: -1,  //  有效期設置負數,cookie會自動清空
     path: "/",
     domain: "cnblogs"  //  主域名
   }
)

 

OK,到這里單點登錄就完成了。

 

版權聲明:本文為博主原創文章,轉載需注明出處https://www.cnblogs.com/silent007/p/15207581.html

 

***************************************    END   ***************************************

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM