SAP Spartacus 因为 refresh token 刷新令牌过期后显示用户重新登录页面的逻辑
在 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
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Spartacus 因为 refresh token 刷新令牌过期后显示用户重新登录页面的逻辑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滴滴2020年财报_互联网人民日报
- 下一篇: EC20开发流程[通俗易懂]