我试图从文档中理解快速 session ,但无法得到一些要点
考虑一下我从存储库中找到的这段代码
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'aaabbbccc',
store: new MongoStore({
url: MONGO_URI,
autoReconnect: true
})
}));
现在,我可能知道这里发生了什么,但仍然只是确认
resave: true
根据文档,这意味着它将强制将 session 保存回 session ,即使它没有更改。好吧,酷吗?但是,为什么有人会在未更改的情况下强制保存 session ,这会产生什么影响呢?
saveUninitialized: true
这里我们也存储未登录用户的 session 吗?
最后,如果有人也可以解释这行代码(我无法理解)
store: new MongoStore({
url: MONGO_URI,
autoReconnect: true
})
继续,在上面的代码中,存储库的作者没有将 session 存储在 cookie 中?只是存储 cookie 标识符吗?
最后,在描述中他们提到/谈论了 cookie.httpOnly
、cookie.expires
和 cookie.domain
现在,我理解了它们的功能,但无法理解它们的实现,所以是否有人可以展示其中任何一个的实现?
最佳答案
这些是我的理解。我可能是错的。
- 可能是
resave
用于某些存储驱动程序以保持 session 事件!?我现在没什么想法。 saveUninitialized
为true
表示始终会创建 session 。实验:创建一个简单的 Express 服务器。配置 express-session 并保持该值 true。不要手动创建任何 session 。从浏览器访问服务器的任何端点。打开开发者选项并查找 cookie。您将看到已生成 cookie。现在,删除 cookie。将值更改为 false 并再次到达端点。这次不会生成cookie。- 如果您未提及任何存储,则所有 session 都将存储在
MemoryStore
中,该存储仅用于开发目的。因此,在生产中您应该始终使用某种持久存储。有很多storage options可用。
关于node.js - 了解 NodejS 中的 Express session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754839/