#apache #express #passenger #express-session
Вопрос:
Это моя среда сеанса
var sess = {
store: new RedisStore({client: redisClient}),
name: '_yes_',
secret: 'randomkeyforstackoverflow',
resave: false,
saveUninitialized: true,
cookie: {
//maxAge: 24*60*60*100*100,
sameSite: false,
httpOnly: false
}
}
if (process.env.NODE_ENV === 'development')
{
console.log("We are in development mode");
//app.set('trust proxy', 1);
}
else if (process.env.NODE_ENV === 'testing')
{
console.log('We are in testing mode')
//app.set('trust proxy', 1);
}
else
{
console.log('We are in production');
app.set('trust proxy', 1);
sess.cookie.secure = true
sess.cookie.httpOnly = true
}
Что я выяснил до сих пор, так это то, что настройка sess.cookie.безопасность к истине приводит к тому, что файлы cookie не отправляются. Я нахожусь на сервере Apache2, использующем Passenger прямо сейчас, я не обязательно думаю, что в этом есть какая-либо ошибка конфигурации. Я могу отправлять файлы cookie, когда устанавливаю среду для разработки/тестирования, но я не могу отправлять их в производство. Мой сайт явно требует, чтобы вы работали по протоколу HTTPS, и он перенаправляет все HTTP-запросы на HTTPS. Каким-то образом, установив значение secure в true, это не приводит к отправке файлов cookie. Я знаю, что файл cookie устанавливается на стороне сервера, потому что я регистрирую его. Мой Redis также работает, я вижу соединения в информации redis-cli.
Кто-нибудь знает, почему экспресс-сеанс определяет, что браузер небезопасен, если значение secure равно true? Я думал, что, находясь на https, это будет считаться безопасным по умолчанию.
Спасибо