0

在这里,我使用 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();
});
4

3 回答 3

0

尝试这个,

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

而不是使用原始最大年龄,您可以使用 maxAge 并且您没有向 saveUninitialized 传递任何值,这是一个必要的参数。

于 2017-08-14T12:28:35.320 回答
0

您不应该设置 cookie:

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

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

于 2017-05-10T08:48:50.693 回答
0

尝试这个,

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

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

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

于 2016-07-20T22:03:01.993 回答