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


person BarthesSimpson    schedule 09.10.2015    source источник
comment
У меня такая же проблема. Вы решили это?   -  person Marc    schedule 19.09.2017
comment
@ Марк, нет, к сожалению, никогда не делал.   -  person BarthesSimpson    schedule 23.09.2017
comment
ты смог это решить?? с помощью app.set('доверительный прокси', 1)   -  person Mohit Gupta    schedule 06.10.2020


Ответы (1)


Может ли это быть связано с тем, что CloudFlare помещает экземпляр приложения node за прокси?

Цитата из документации expressjs/session:

Если ваш node.js находится за прокси-сервером и вы используете secure: true, вам нужно установить «доверенный прокси-сервер» в экспресс.

app.set('trust proxy', 1)

https://github.com/expressjs/session#cookiesecure

person Daniel    schedule 29.12.2017
comment
Была идентичная проблема, и это решило ее. Должен быть отмечен как таковой. Спасибо - person Spain Train; 09.05.2018