除了信任代理之外,Heroku上的快速会话安全cookie还有其他设置吗



我正试图在Heroku上运行的express应用程序上设置安全cookie。我已经在会话配置中尝试了app.set('trust proxy', true)和设置proxy: true。在这两种情况下,一旦使用SSL证书将cookie部署到Heroku,就无法修改cookie

其他事情:我从未在会话中实现过resave = true,因为mongo connect有一个触摸方法。

userSessionStore = new MongoDBStore({
url: 'foo',
collection: 'bar',
touchAfter: 3600,
});
const sess = {
secret: process.env.SESSION_SECRET,
name: 'name',
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 1 * 24 * 60 * 60 * 1000
},
store: userSessionStore
};
if (process.env.NODE_ENV === 'production') {
sess.cookie = {
secure: true,
httpOnly: true,
domain: baseURL
};
}
app.use(session(sess));
if (process.env.NODE_ENV === 'production') {
app.set('trust proxy', true);
}

此问题是由于baseURL变量与heroku上的主机和子域都不匹配。由于heroku在foo.herokuapp.com上托管了许多应用程序,因此需要匹配子域。

最新更新