流程描述:
(1)用戶通過接入方(應(yīng)用)登錄画株,接入方采取OAuth2.0方式在統(tǒng)一認證服務(wù)中認證辆飘。
(2)認證服務(wù)調(diào)用驗證該用戶的身份是否合法,并獲取用戶權(quán)限信息谓传。
(3)認證服務(wù)獲取接入方權(quán)限信息蜈项,并驗證接入方是否合法。
(4)若登錄用戶以及接入方都合法续挟,認證服務(wù)生成jwt令牌返回給接入方紧卒,其中jwt中包含了用戶權(quán)限及接入方權(quán)限。
(5)后續(xù)诗祸,接入方攜帶jwt令牌對API網(wǎng)關(guān)內(nèi)的微服務(wù)資源進行訪問跑芳。
(6)API網(wǎng)關(guān)對令牌解析、并驗證接入方的權(quán)限是否能夠訪問本次請求的微服務(wù)直颅。
(7)如果接入方的權(quán)限沒問題博个,API網(wǎng)關(guān)將原請求header中附加解析后的明文Token,并將請求轉(zhuǎn)發(fā)至微服務(wù)功偿。
(8)微服務(wù)收到請求盆佣,明文token中包含登錄用戶的身份和權(quán)限信息。因此后續(xù)微服務(wù)自己可以干兩件事:
1.用戶授權(quán)攔截(看當前用戶是否有權(quán)訪問該資源)
2.將用戶信息存儲進當前線程上下文(有利于后續(xù)業(yè)務(wù)邏輯隨時獲取當前用戶信息)