node.js - 了解 NodejS 中的 Express session

标签 node.js cookies

我试图从文档中理解快速 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.httpOnlycookie.expirescookie.domain

现在,我理解了它们的功能,但无法理解它们的实现,所以是否有人可以展示其中任何一个的实现?

最佳答案

这些是我的理解。我可能是错的。

  1. 可能是resave用于某些存储驱动程序以保持 session 事件!?我现在没什么想法。
  2. saveUninitializedtrue 表示始终会创建 session 。实验:创建一个简单的 Express 服务器。配置 express-session 并保持该值 true。不要手动创建任何 session 。从浏览器访问服务器的任何端点。打开开发者选项并查找 cookie。您将看到已生成 cookie。现在,删除 cookie。将值更改为 false 并再次到达端点。这次不会生成cookie。
  3. 如果您未提及任何存储,则所有 session 都将存储在 MemoryStore 中,该存储仅用于开发目的。因此,在生产中您应该始终使用某种持久存储。有很多storage options可用。

关于node.js - 了解 NodejS 中的 Express session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754839/

相关文章:

javascript - 如何让 javascript 不能使用 window.* 方法

node.js - 限制对 admin-sdk 的 firestore 访问

ruby-on-rails - 将 rails web 应用程序的用户 session 与用于移动应用程序的 rails API 的授权 token 结合使用。

javascript - 在 Cookie JavaScript 中存储空格和冒号

asp.net - 以编程方式启用/禁用 ASP.NET session 状态?

node.js - 列值在 Node js sequelize 中返回 null 而不是 0

node.js - MongoDB - 如何从具有 ID 的对象数组中检索多个集合

javascript - node.js(ES6/Babel)中 import X 和 import * as X 的区别?

cookies - JSON Web Token (JWT) 相对于 Cookie 的优势/劣势

javascript - PHP 中的 setcookie 仅适用于本地主机