2016-12-04 35 views
0

我正在學習使用Express中的Node.js中的「client-sessions」包。一切似乎都運作良好。但我想知道,是否有一種方法讓它在會話過期時調用函數?我如何知道會話何時到期?

我正在設置的東西,使會議只存儲一個唯一的ID。然後在會話之外存儲所有用戶數據和我需要的任何其他內容。這樣它使我的cookie和會話信息非常小。但我想知道會話何時到期,以便我可以清除會話結束後不需要保留的任何信息。

但我一直沒能找到任何細節如何做到這一點。我是否以錯誤的方式思考這個問題?如果我在會話中存儲了所有內容,它會嘗試將其全部存儲在cookie中,而不是它?

在此先感謝。

+0

只需將數據存儲在會話對象本身中,它將全部爲您照顧。如果您使用的是體面的會話管理器,則Cookie只攜帶會話ID,而會話對象本身就是服務器端。 – jfriend00

+0

@ jfriend00 - 剛剛測試過,保存了會話的一些信息,cookie從183B變爲10KB。我在考慮將會話中的所有內容保存到cookie中。我現在正在使用[client-sessions](https://www.npmjs.com/package/client-sessions)。你會建議我尋找一個更好的會話管理器嗎? –

+0

快速會話不會那樣做。 – jfriend00

回答

1

使我的意見爲答案,因爲它似乎已經幫你解決您的問題...

如果你使用一個會話管理器,像express-session,僅僅保存在瀏覽器cookie的會話ID,並保持會話對象服務器端,那麼你可以直接將數據存儲在會話對象中,當會話過期時,會話管理器將自動清理會話(包括會話中的數據)。然後,你不必擔心它何時到期,因爲事情只是自動爲你管理。

express-session有能力在會話中查找給定會話store.get(sessionID, callback)其中store是您正在使用的會話存儲對象。要使用它,您需要先保存給您想要查找的給定用戶的sessionID。

相關問題