攜帶帳號密碼訪問認證中心,認證中心校驗合法後經過jwt生成token(消息體包含用戶ID,過時時間)
而且以用戶ID爲key,token爲value緩存到Redis中緩存
經過用戶ID刪除Redis緩存中對應的token服務器
用戶攜帶token訪問統一API網關,網關經過過濾器解析token獲取用戶ID,判斷過時時間,
經過用戶ID查詢Redis緩存是否存在,再生成新的token(消息體包含用戶ID,過時時間,用於服務與服務之間調用使用,過時時間能夠設置1分鐘左右),將新的token添加到請求頭中帶去資源服務器spa
須要攜帶網關生成的token去訪問jwt
認證中心生成的token與網關生成的token使用的簽名不能相同,這樣能夠確保用戶沒法直接訪問資源服務器,只能經過網關去訪問。token
在認證中心生成的token消息體中包含用戶擁有的角色ID集合,訪問網關時從緩存中獲取角色與權限的關係,而後校驗是否有權限訪問。圖片