Безопасные файлы 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)

https://github.com/expressjs/session

Другие вопросы по тегам