統(tǒng)一登錄方案

前端角度的理解,可分為兩大塊內(nèi)容

1、統(tǒng)一登錄的業(yè)務(wù)模塊 (將登錄業(yè)務(wù)模塊獨(dú)立出來)

痛點(diǎn):主要是前端開發(fā)人員維護(hù)痛苦,每個(gè)項(xiàng)目都單獨(dú)寫登錄界面,代碼不統(tǒng)一,維護(hù)起來麻煩(后臺服務(wù)統(tǒng)一,前端未統(tǒng)一)。未能提升開發(fā)效率。

方案:

a、統(tǒng)一登錄業(yè)務(wù)SDK(npm包集成)

優(yōu)點(diǎn):方便快捷集成

缺點(diǎn):技術(shù)棧需要相同

b、統(tǒng)一登錄獨(dú)立系統(tǒng) (跳轉(zhuǎn)登錄系統(tǒng))

優(yōu)點(diǎn):統(tǒng)一維護(hù),不受項(xiàng)目技術(shù)棧限制,應(yīng)用場景廣

缺點(diǎn):系統(tǒng)訪問路徑url需要中轉(zhuǎn)登錄服務(wù)

2、統(tǒng)一登錄SSO服務(wù)(單點(diǎn)登錄)

痛點(diǎn):多平臺登錄會(huì)相互影響,切換平臺需要重新登錄,影響用戶體驗(yàn)。
是目前需要解決的問題

解決方案:token的共享

1、同源cookies 共享 --- 解決目前問題最簡單選擇

// 設(shè)置token在根域名下
if(window.location.host.includes('.ff.com.cn')){   
   return Cookies.set(TokenKey, token, { expires: 30, path: '/', domain: '.ff.com.cn' }) 
 }

問題1:測試環(huán)境和正式環(huán)境需要設(shè)置不同的tokenKey
問題2:ff.com.cn 這樣子域名在相同環(huán)境下的token是否都通用,通用的話需要把相關(guān)系統(tǒng)的tokenKey設(shè)置成一樣。如不通用,那tokenKey須不一樣。
問題3:后續(xù)系統(tǒng)會(huì)不會(huì)有其他域名的情況?

缺點(diǎn):只能在同域下處理,儲存的tokenKey須管理好
優(yōu)點(diǎn):項(xiàng)目改造簡單,成本低

2、跨域需要登錄系統(tǒng)分發(fā)token --- 需要獨(dú)立部署登錄系統(tǒng)

流程圖:

登錄系統(tǒng)流程圖.png

說明token分發(fā)有兩種方式:
1、URL傳值
2、postMessage跨源通信

缺點(diǎn):前期項(xiàng)目改造麻煩點(diǎn),成本高

優(yōu)點(diǎn):擴(kuò)展性高,不受域名限制

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容