2015-10-09 1 views
5

Я посмотрел this answer и this answer, но не кубиками. Моя проблема в том, что когда мое приложение доступно через https://appname.herokuapp.com, все работает нормально. но при доступе через https://www.appname.com (который CloudFlare псевдонимы https://appname.herokuapp.com), он ломается.безопасное печенье node.js + Heroku + CloudFlare

В частности, когда пользователь входит в систему, аутентификация обрабатывается правильно, но 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?

+0

У меня есть один и тот же вопрос. Вы решили это? – Marc

+0

@Marc, нет, я никогда не был к сожалению. – BarthesSimpson

ответ

0

Возможно, это связано с тем, что CloudFlare ставит приложение-узел за прокси-сервер?

Цитируется документации expressjs/сессии:

Если у вас есть node.js позади прокси и с помощью безопасной: верно, вам нужно установить «доверительные прокси» в экспресс.

app.set('trust proxy', 1)

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

 Смежные вопросы

  • Нет связанных вопросов^_^