【问题标题】:express-session didn't store sessionexpress-session 没有存储会话
【发布时间】:2017-08-14 20:28:35
【问题描述】:

这里我使用 express-session 存储用户会话,但发现 req.session.user 始终未定义。

搞笑的是,我用chrome插件postman访问的时候没有问题。

那么如何解决呢?

var session = require('express-session');
app.use(session({
    resave: false,
    secret: 'key',
    saveUninitialized: 
    originalMaxAge: 100000,
    cookie: {
        secure: true
    }
}));

app.use(function(req, res, next) {
    console.log(req.session.user);
    if (!req.session.user)
        req.session.user = {'zh':'123'};
    next();
});

【问题讨论】:

    标签: session express express-session


    【解决方案1】:

    试试这个,

    app.use(session({
        resave: false,
        secret: 'key',
        saveUninitialized: true,
        cookie: {
            originalMaxAge: 100000,
            secure: true
        }
    }));
    

    我从未使用过 originalMaxAge,但我认为它与 cookie 的 maxAge 具有相似的功能。

    参考:https://github.com/expressjs/session

    【讨论】:

      【解决方案2】:

      你不应该设置cookie:

      app.use(session({
          resave: false,
          secret: 'key',
          originalMaxAge: 100000
      }));
      

      我已经在我的电脑上运行了,结果就是你想要的。

      【讨论】:

        【解决方案3】:

        试试这个,

        app.use(session({
           secret: "your-secret",
           resave: true,
           saveUninitialized: true,
           cookie: {
              maxAge: 1000000,
              secure: true
           }
        })
        

        您可以使用 maxAge 而不是使用 Original Max Age,并且您没有向 saveUninitialized 传递任何值,这是一个必要的参数。

        【讨论】:

          猜你喜欢
          • 2015-05-18
          • 2021-10-20
          • 1970-01-01
          • 2018-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多