【问题标题】:Understanding Express session in NodejS了解 NodejS 中的 Express 会话
【发布时间】:2019-05-14 06:08:07
【问题描述】:

我试图从文档中理解 express-session,但我无法得到一些分数

考虑一下我从回购中找到的这段代码

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
      })

继续,在上面的代码中,repo 的作者没有将会话存储在 cookie 中?并且只是存储cookie标识符?

最后,在他们提到/谈论过cookie.httpOnlycookie.expirescookie.domain 的描述中

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

【问题讨论】:

标签: node.js cookies


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-02-16
    • 1970-01-01
    • 2013-06-20
    • 2019-02-16
    • 2018-06-30
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多