簡體   English   中英

在瀏覽器中檢查會話到期

[英]Checking session expiration in the browser

我正在開發必須使用會話超時的應用程序。

問題是用戶經常錯過會話超時並丟失數據。 我已經用javascript實現了一個小型會話管理器,如果瀏覽器中有一些活動,它將每分鍾更新一次會話,但是用戶仍然會以某種方式丟失數據(假設他們正在填寫表單的一半,離開了他們的計算機,會話過期后返回並提交表單。)

我想找到一種警告他們的會話已過期的方法。 問題是我不知道該怎么做。 我無法檢查javascript中會話cookie的到期時間,因為它是HttpOnly cookie,並且如果我執行某種AJAX請求來檢查會話狀態,它將自動為會話設置新的到期時間。

誰能看到解決這些障礙的方法?

這不是檢查會話超時的直接答案...但是當我擔心用戶在表單中丟失工作時,我發現garlic.js可以提供幫助。 基本上,這是一個JS庫,負責將表單數據保存在用戶瀏覽器的本地存儲中,直到提交表單為止。 因此,在瀏覽器關閉或會話終止的情況下,數據不會丟失。 因此,這對於丟失數據的部分可能是一個很好的備份解決方案。

更新

為了避免會話超時后提交表單,我通常要做的是設置一個JavaScript計時器,該計時器將在典型會話超時時間后的幾秒鍾內自動將用戶重定向到會話過期頁面(使用方便的再次登錄按鈕)。 (當頁面中有活動時,您可以使用AJAX輪詢來重置此計時器。)這與大蒜.js結合,與“深度潛水”功能結合在一起(由此,在訪問身份驗證的URL時,將它們存儲在會話中,以便超時並重新登錄,即可將用戶返回到他們上次訪問的最后一頁),創建了一個無縫的超時,登錄,在您退出場景的地方繼續的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM