問題描述假設(shè)有兩個系統(tǒng)a,b以及一個sso服務(wù),采用前后端分離的方式開發(fā),前端訪問接口時均經(jīng)過網(wǎng)關(guān),這里我使用的是spring cloud gateway,我的想法是所有的接口請求都在網(wǎng)關(guān)層判斷token(jwt),如果請求頭里有去sso服務(wù)校驗token,成功后轉(zhuǎn)發(fā)到真實的業(yè)務(wù)服務(wù),沒有就重定向到sso登錄頁,登陸后sso把token存在redis中問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法此時用戶點開a系統(tǒng)的一個鏈接www.a.com/order,這個頁面有很多接口請求,也有可能一個都沒有問題1:針對接口請求,可以在網(wǎng)關(guān)判斷,如果是單純的前端鏈接怎么辦,我是說假設(shè)已經(jīng)在b登錄了,現(xiàn)在請求又沒辦法到達(dá)后端忽略問題1,假設(shè)用戶在a系統(tǒng)登錄,sso中緩存了用戶token,并且token,用戶id返回給了系統(tǒng)a,以后a系統(tǒng)請求都攜帶token,現(xiàn)在用戶訪問b系統(tǒng)中接口,我的想法是前端傳用戶id,sso以用戶id為key查詢token,有則通過并返回給系統(tǒng)b請求,這樣以后系統(tǒng)b也可以都帶著token請求問題2:系統(tǒng)b如何傳用戶id,一開始系統(tǒng)b是沒有任何用戶信息的,這個用戶id從哪來以上是我實現(xiàn)sso的想法,感覺問題還有很多,如果各位有成熟的方案(最好是生產(chǎn)級),請直接否定,給出你的答案
2 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗 獲得超8個贊
如果是前后端分離的話,在每次用瀏覽器打開網(wǎng)頁時,都從sso服務(wù)獲取一下當(dāng)前用戶的信息,這時候就能知道用戶是否已登錄了,再給路由加登錄權(quán)限的驗證,就可以實現(xiàn)。
- 2 回答
- 0 關(guān)注
- 1789 瀏覽
添加回答
舉報
0/150
提交
取消