在 auth.interceptor.ts 裡判斷,token 是否過期:
isExpiredToken: 通過伺服器端傳回的錯誤類型判斷。

如果确實過期了,首先調用 handleExpiredToken, 傳回的 Observable 對象,使用該 token,重新發送之前因為 token 過期而失效的請求:createNewRequestWithNewToken:
stream 是一個 BehaviorSubject:
this.oAuthLibWrapperService.refreshToken, 這個方法重新整理的是 Access Token. 如果失敗,說明 refresh Token 也過期了,此時先調用第 135 行的代碼,handleExpiredRefreshToken,先處理 refresh token 的過期問題。
refresh access token: 需要傳舊的 refresh token,但是 response 裡也傳回了新的 refresh token.
Spartacus 顯示 “Your session has expired. Please login again.” 的邏輯:
如果 refresh token 也過期了,隻能重新登入了。
this.authService.coreLogout, 首先登出,然後 this.routingService.go({ cxRoute: ‘login’});
把使用者重定向到登入頁面:
最後顯示 session expired 的錯誤提示消息,key 為:httpHandlers.sessionExpired