2017-07-12 93 views
0

我們有一個帶有java spring boot後端的角度2應用程序。在春季後端,我們在YAML配置文件中設置了1小時的會話超時(爲了測試目的,我將其更改爲1分鐘)。一旦會話超時,令牌就沒有長時間的身份驗證,用戶需要再次登錄才能恢復/啓動應用程序。如何在Angular 2/Java Spring Boot中處理會話超時

會話超時後,角度應用應該將用戶重定向到登錄頁面。它應該這樣做,無論用戶活動/閒置狀態如何。

我遇到的問題是如何在角度2應用程序中將用戶重定向到會話超時後的登錄頁面。我想知道在哪裏以及如何實施?在一個服務類?在用戶服務類(我有一個用戶服務類,從春季後端檢索登錄的用戶信息)。應用程序中的每個組件都需要檢查會話狀態嗎?

想知道角度2的最佳做法。

謝謝!

+0

我會建議您從後端獲取令牌並將其保存在瀏覽器的本地存儲器中以及您查詢的主要組件中,您有一個路由器解決方案,您檢查本地存儲項目是不爲空,然後繼續執行,如果null重定向到使用解析登錄,或者您甚至可以使用canActivate來防止路由的錯誤訪問 –

回答

0

一旦用戶登錄,您可以啓動一小時計時器(可以使用Observable.timer),並在定時器完成時導航到登錄/註銷(使用router.navigate)。

或者您可以創建自定義Http服務並將其用於所有後端調用。在自定義服務中,從後端收到錯誤後導航到註銷/登錄。 請參閱https://stackoverflow.com/a/44929725/7710727