【发布时间】:2017-12-07 06:23:52
【问题描述】:
我面临一个问题:每次请求都会创建新的 sessionID。有人可以解释一下吗?
我正在使用的版本:
节点版本:v6.10.3 NPM 版本:3.10.10 快递@4.15.3 express-session@1.15.3
如果我没有专门设置 cookie,maxAge 的默认值是多少?不确定是否需要。
您发现下面的代码有什么问题吗?请帮忙,因为我被卡住了。
var app = express();
app.use(express.static(path.join(__dirname, 'landing')));
app.use(bodyparser.json());
app.set('trust proxy', 1) // trust first proxy
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {secure: true}
}))
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'landing', 'index.html'));
});
var contextPath = '/myportal';
//UI url
app.get(contextPath, function (req, res) {
var reqValues;
logger.info("req sessionID is :::" + req.sessionID);
// do something
}
app.use(express.static(path.join(__dirname, 'build'))); //react UI path
res.sendFile(path.join(__dirname, 'build', 'index.html'));
}
//health check url
app.get(contextPath + '/health', function (req, res) {
logger.info("env is " + env);
logger.info("myportal health is ok");
res.send('Health Ok!\n');
});
【问题讨论】:
-
你读过manual吗?
-
是的,我已经浏览了文档,这就是我尝试的方式,但不幸的是它对我不起作用。想知道我在这里缺少什么。
-
你必须使用
https-express。 -
感谢 Aikon,是的,我已经在使用它了,因为我正在尝试将它部署在启用了 https 的服务器上。抱歉代码越来越大,所以无法在最初的问题中提供这些细节
-
PALLAMOLLA SAI 描述正确——我也面临同样的问题。简而言之,您可能使用了 post ,默认情况下不发送 cookie。要么使用 get,要么使用适当的标头发出 post 请求,该标头将发送 cookie。您可能需要验证 cookie-parser 是否也在您的节点服务器中定义
标签: node.js npm sessionid express-session