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

Any additional settings for express-session secure cookies on Heroku besides trust proxy?

我正在尝试在 Heroku 上的 express 应用 运行 上设置安全 cookie。我在会话配置中尝试了 app.set('trust proxy', true) 和设置 proxy: true。在这两种情况下,一旦使用 SSL 证书部署到 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 托管了许多应用程序,因此需要匹配子域。