2012-06-17 73 views
0

即使在用戶關閉瀏覽器(直到用戶單擊註銷)而不在數據庫中存儲會話後,我仍需要一種維護會話的方式。即使用戶關閉瀏覽器後,如何延長會話時間?

這樣做的最好方法是什麼?

我可以在cookie中存儲用戶名+密碼(散列)嗎?

+1

爲什麼? ----------- –

+0

我確定他的意思是,他需要讓用戶保持登錄的方式。大多數網站允許基於coockies設置進行自動登錄。如果我需要輸入我的登錄名並通過我訪問的每個論壇,我都會變得生氣。 – DaneSoul

回答

1

保存在大失效時間(比如說1個月左右)的cookie中。 不需要密碼散列,只是一些標識散列,存儲在數據庫以及用戶端(比較)中,以便您可以進行比較。

1

當用戶登錄時,您應該生成一個隨機令牌並1)將其保存在數據庫中,2)使用用戶名和隨機令牌設置一個cookie。

然後,您應該創建一個函數,它接受此cookie並將令牌與DB中的令牌相匹配。如果令牌相同,則應開始一個會話並生成一個新會話。

使用隨機令牌而不是密碼,否則它將始終是相同的。

請記住,您的「用戶登錄」功能必須首先檢查會話是否打開,否則會重複此過程用於每個用戶訪問的頁面。

相關問題