2012-11-14 38 views
0

我將所有會話ID都存儲在一個帶有用戶名和系統IP的變量中,我只將這些數據用於用戶名的一次登錄。現在我遇到了兩個問題,有時瀏覽器中的新會話會自動生成,而無需用戶操作,或者用戶刪除與我的服務器相關的cookie。因此,用戶使用新會話,我需要從列表中刪除用戶名,系統IP和會話ID。如何爲用戶名實現一次登錄

回答

1

由於用戶在您的網站上沒有做任何明確的事情,因此您無法知道「丟失cookie」和「暫時沒有訪問過該網站」之間的區別。用這樣的方案可以做的最好的做法是僅僅過期一週,一個月或一年沒有活動的會議或任何適當的會議。

如果您希望允許用戶永久保持「登錄狀態」而不佔用服務器資源,則應考慮使用加密/散列cookie與登錄用戶的用戶標識而不是會話。

+0

感謝您的評論,實際上會話cookie是由express框架生成的,我沒有生成它。但是對於會話超時,我不能選擇它已經定義了24小時,因爲我不能拒絕那個時間,因爲我的應用程序用戶必須在一個屏幕上輸入超過200個條目。 – Dexter

+0

您決定告訴瀏覽器保存cookie的時間有多長,不是嗎?如果只是24小時,您應該能夠刪除任何尚未修改/訪問的會話。 –

+0

要使用簽名的cookie,請參閱http://stackoverflow.com/questions/11897965/what-are-signed-cookies-in-connect-expressjs –

相關問題