【问题标题】:Node.js Handle session with databaseNode.js 处理与数据库的会话
【发布时间】:2018-09-07 05:20:10
【问题描述】:

基本上我有一个 Node.js Web 应用程序,它使用 express-session 模块来处理会话。

它工作得很好,但有 1 个期望,这对我来说破坏了这个选项。如果服务器崩溃或我部署了新版本,会话将被彻底清除,这对我来说是不可接受的。我无法在主服务器和备份服务器之间共享会话也很糟糕。

所以我的目标是通过外部云数据库处理会话,只需将其视为“临时 mysql 数据库”。

但关键是我只是对如何做到这一点感到困惑。我可以为会话分配唯一​​ ID,并根据这些 ID 从数据库加载资源,但是如果这些会话被清除,我如何重新识别用户?

我缺乏很多关于会话的知识,但由于这对我来说是一个非常重要的话题,所以我在这里发布一个问题。

【问题讨论】:

    标签: node.js database session cookies session-cookies


    【解决方案1】:

    您可以使用这些商店中的任何一个(或自己编写):

    https://www.npmjs.com/package/express-session#compatible-session-stores

    我正在使用 connect mongo 在我的 mongo DB 中存储会话,代码如下所示(app.js):

    import session from 'express-session';
    const MongoStore = require('connect-mongo')(session);
    ...
    ...
        api.use(session({
            secret: global.config.secrets.session,
            saveUninitialized: false, // don't create session until something stored
            resave: false, //don't save session if unmodified
            store: new MongoStore({
                mongooseConnection: mongoose.connection,
                touchAfter: 24 * 3600 // time period in seconds
            })
        }));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2012-12-09
      • 2011-12-23
      相关资源
      最近更新 更多