节点快速会话机制

时间:2018-01-03 18:50:20

标签: node.js express session mongoose express-session

如果使用app.use(session({store: mongoConnection})),我一直认为快递会话信息存储在服务器端的mongodb中。

但是当我尝试使用第一个浏览器检索先前在服务器端设置的会话变量时,我转到下一个浏览器来获取它,我无法获得该变量。那么最终会话变量是否存储在特定浏览器的cookie中?否则,无论我使用哪种浏览器,我都会获得该变量。

如果是这样,app.use mongo连接有什么作用?什么是存储?

2 个答案:

答案 0 :(得分:1)

会话数据存储在会话存储中。但是cookie用于跟踪给定浏览器会话的会话ID。 cookie不会传递会话数据,只传递会话ID和一些其他信息以进行验证。实际会话数据存储在会话存储中,不通过线路传输。从而防止某种攻击。

用于跟踪会话的cookie在会话期间的每个请求上从浏览器传输到服务器。因此,您无法从其他浏览器访问会话信息。

答案 1 :(得分:0)

您正在使用的Session Storage用于在MongoDB中存储会话变量。 重新启动express.js服务器后,然后返回相同的用户/浏览器选项卡,它们可以获得相同的变量。否则,这些变量将存储在内存中,并在服务器停止时被删除。