我正在尝试从文档中理解快速会话,但我无法获得一些要点
考虑这段代码,这是我在一个仓库中找到的
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'aaabbbccc',
store: new MongoStore({
url: MONGO_URI,
autoReconnect: true
})
}));
现在,我可能知道这里发生了什么,但仍然只是为了确认
根据文档的 resave: true
表示,即使会话没有更改,它将强制将会话保存回会话。好酷吗?但是,为什么有人在不更改会话的情况下强行保存会话,它将产生什么不同呢?
saveUninitialized: true
在这里,我们是否还为未登录的用户存储会话?
最后,如果有人也能解释这一行代码,(我无法理解)
store: new MongoStore({
url: MONGO_URI,
autoReconnect: true
})
继续,在上面的代码中,存储库的作者是否将会话存储在cookie中?并且只是存储cookie标识符?
最后,在描述中,他们提到/谈论了cookie.httpOnly
,cookie.expires
和cookie.domain
现在,我理解了它们的功能,但无法理解它们的实现,因此,是否有人可以展示其中任何一个的实现?
答案 0 :(得分:4)
这些是我的理解。我可能是错的。
resave
用于某些存储驱动程序,以使会话保持活动状态!?我现在什么都没想到。saveUninitialized
是true
的意思,会话将始终被创建。实验:创建一个简单的快递服务器。配置快速会话并保持该值为true。不要手动创建任何会话。从浏览器命中服务器的任何端点。打开开发人员选项并查找cookie。您将看到一个cookie生成。现在,删除cookie。将值更改为false并再次命中端点。这次不会产生Cookie。MemoryStore
中,该{{1}}仅用于开发目的。因此,在生产中,您应始终使用某种持久性存储。 storage options数量很多。