2013-10-28 32 views
0

我需要一些幫助。使用PHP和AJAX在瀏覽器關閉時銷燬用戶令牌

我寫了一個模塊在我的系統中顯示用戶在線。我檢查用戶使用令牌登錄到系統。

在我的數據庫中,表用戶有「標記」字段。 當用戶登錄到系統時,令牌已創建並更新到數據庫。相反,當用戶點擊註銷鏈接時,令牌將被銷燬。

但我有一個問題,當用戶關閉瀏覽器,不要點擊註銷鏈接,我如何刪除他們的令牌。

希望你明白這個問題。請幫忙。 謝謝

+0

我認爲你需要使用會話來達到這個目的而不是數據庫' –

+0

也許這會解決你的問題? http://stackoverflow.com/questions/1173524/php-session-lifetime-problem –

回答

0

我認爲cron工作可能是解決您的問題的方法。對於該解決方案,您將不得不按照以下步驟操作:

  • 添加帶標記的日期時間字段。

  • 更新每個請求上的datetime字段。

  • 木箱cron作業,將檢查[在每5-10分鐘] 日期時間字段的時間差與當前日期時間,如果不同的是 比你指定的時間間隔(會話時間)更大的破壞 令牌。

1

問題是,當用戶關閉瀏覽器時,您將無法獲知(在JavaScript中,也不在PHP中)。但我認爲您將令牌存儲在cookie中 - 因此我不會說「有效期」,然後瀏覽器生成會話Cookie,關閉瀏覽器後無效。

+0

如果禁止javascript –

+0

這個會話cookie是由瀏覽器本身處理,它使用JavaScript無關待辦事項。因此,如果沒有JavaScript,會話Cookie(在瀏覽器關閉時將銷燬的Cookie)也將失效。 – andreashager

+0

我可以想象使用帶有「有效期」字段的數據庫,因此令牌不需要隨時用cookie傳輸。最後,用戶仍然需要一個會話cookie以及標識當前用戶的信息。 –

相關問題