Безопасные файлы cookie node.js + Heroku + CloudFlare
Я посмотрел на этот ответ и этот ответ, но без игры в кости. Моя проблема в том, что когда к моему приложению обращаются через https://appname.herokuapp.com/, все работает нормально. но при доступе через https://www.appname.com/ (который CloudFlare имеет псевдоним https://appname.herokuapp.com/), он выходит из строя.
В частности, когда пользователь входит в систему, аутентификация обрабатывается правильно, но cookie пользовательского сеанса не установлены должным образом. Поэтому, когда зарегистрированный пользователь перенаправляется на следующий экран, запрос отклоняется как неавторизованный.
Прямо сейчас я делаю это в экспресс:
var mySession = session({
key: "sid",
secret: process.env.SESSIONS_SECRET,
proxy: true,
cookie: {
maxAge: 86400000,
secure: true,
},
store: rDBStore,
resave: false,
saveUninitialized: true,
unset: 'destroy'
});
app.enable('trust proxy');
app.use(mySession);
Я что-то упустил в своем коде узла или в моих настройках CloudFlare?
1 ответ
Может ли это быть связано с тем, что CloudFlare помещает экземпляр приложения узла за прокси-сервер?
Цитируется из документации expressjs/session:
Если у вас есть ваш node.js за прокси и вы используете secure: true, вам нужно установить "доверенный прокси" в экспрессе.
app.set('trust proxy', 1)