我正在嘗試在我的應用程式中實作會話超時邏輯。應用程式會話是 60 分鐘,如果活動會話超過 60 分鐘,我需要向用戶顯示一條訊息以延長。根據會話到期分鐘數和用戶空閑分鐘數,我需要計算會話到期分鐘數。
我可以看到有很多實作可以讓用戶空閑時間超時。但是,我看不到任何讓用戶空閑時間的實作。
我正在遵循以下實施https://www.chunho-ling.com/2021/07/05/angular-idle-timeout-checking/
任何人都可以闡明如何獲得空閑時間。
uj5u.com熱心網友回復:
我略讀了一下,但總的來說,您鏈接的實作看起來應該或多或少可以解決問題。
它的基本原理是:
- 應用程式的單例服務,它做三件事:
a) 在檔案級別監聽(所有/特定)用戶事件,例如滑鼠點擊等
b) 保持超時計時器運行,只要觸發上述事件,該計時器就會重置。
c) 當超時結束時通知一些事情
- 聽取服務發送的任何通知,并對其采取行動(即注銷)- 或者讓服務本身來做,我不是架構警察。
您更具體的問題只涉及在觸發器觸發時保存時間戳并使其可用于比較。
private onUserEvent(): void {
this.resetTimer();
this.lastUserAction = new Date();
}
然后,無論您多么希望獲得自上次行動以來的分鐘數,比較上次行動日期與當前日期(應該這樣做)
public get idleMinutes(): number {
return this.getMinutesBetween(this.lastUserAction, new Date());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/342741.html
標籤:有角的
