2009-04-29 36 views
1

是否可以通知用戶會話已過期?瀏覽器可以充當服務器並收到此類通知嗎?通知客戶端過期會話 - 網絡編程

一個解決辦法是生成JavaScript,做在客戶端倒計時,最後通知客戶,但我iterested如果postible做到這一點的第一種方式?

第一種方法的後果是什麼?有沒有任何安全問題?

例如,django中的可能的實現方式是什麼?

+2

就個人而言,如果您在某個地方打開某個頁面時沒有過期,那麼我會更好。您可以使用JavaScript「ping」來實現這一點...... – Shog9 2009-04-29 23:02:18

回答

1

你可以有JavaScript的定期輪詢通知的服務器(每30秒,說的),使用XMLHTTPRequest來檢查URL。如果會話超時,服務器可以在該URL上放置一些指示它的內容,然後可以彈出通知。這就是Stackoverflow如何實現其他人已經回答了問題的通知,如果您正在撰寫答案的過程中。

0

您不妨看看comet,雖然我覺得一個JavaScript計時器會是一個更好的解決方案是不易損壞,也更容易實現。

我不能想到任何安全隱患,因爲您只提供過期通知,並未在該步驟中實際進行任何身份驗證。

0

您正在尋找某種comet類型的東西。可能最簡單的「服務器推送」就是輪詢服務器。

0

其實在Django,沒有服務器端過期,如果你使用的文件系統或數據庫引擎=>這是你的客戶端的cookie會話ID至極到期。否則,如果您使用基於緩存的會話,則可以將緩存過期設置爲比會話Cookie過期更大的值。

然後,只需聲明一個沒有失效的cookie,即可在登錄時標記客戶端瀏覽器,並在每個頁面檢查會話ID: 如果沒有會話ID cookie但是您的「cookie標誌」,會話已過期。沒有必要檢查服務器。