快递会议没有存储会话

时间:2015-12-26 15:38:57

标签: session express express-session

这里我使用快速会话来存储用户会话,但却发现req.session.user总是未定义。

有趣的是,当我使用chrome plugin 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();
});

3 个答案:

答案 0 :(得分:0)

试试这个,

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

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

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

答案 1 :(得分:0)

您不应该设置cookie:

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

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

答案 2 :(得分:0)

试试这个,

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

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