【问题标题】:Any additional settings for express-session secure cookies on Heroku besides trust proxy?除了信任代理之外,Heroku 上的快速会话安全 cookie 的任何其他设置?
【发布时间】:2020-11-09 06:20:15
【问题描述】:

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

其他事情:我从来没有在会话中实现resave = true,因为 mongo-connect 有一个 touch 方法。

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);
}

【问题讨论】:

    标签: heroku cookies express-session


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2010-11-25
      相关资源
      最近更新 更多