我在Express中使用cookieSession
,我想在不将其添加到cookie的情况下向会话添加信息。
我想只有sessionId
才需要存储在客户端上,但我没有
了解如何添加更多信息,而不会在cookie中结束。
这大致是我想要的:
req.session.sessionId = "sessionId" -> in the cookiesession (It's work)
req.session.info2 = "info2" -> only linked to the session. (How to do this ?)
可以在不将会话发送到客户端的情况下将对象添加到会话中吗?
答案 0 :(得分:2)
这就是cookieSession
的工作原理:它将所有会话数据存储在cookie中。
如果您不想这样做,则需要使用常规express.session
中间件(而不是express.cookieSession
),但它需要您使用会话存储,因为必须存储该数据某处
您可以使用默认的MemoryStore
- 它将所有数据存储在内存中,这意味着当您的Node应用程序重新启动时将丢失 - 或使用更持久的解决方案,实例使用connect-redis
将会话数据存储在Redis数据库中。
如果您只是不希望会话数据可见,还有一些客户端会话库可以完全加密存储在cookie中的数据,因此它不可见。其中一个库是node-client-sessions
。