Я пытаюсь установить файл cookie для хранения сеанса с помощью экспресс-сеанса. Я отправляю запросы через HTTPS.
app.use(session({
secret: env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
secure: true, // Ensure secure is set to true for HTTPS
sameSite: 'none', // Required for cross-origin cookies
httpOnly: true,
maxAge: 60 * 60 * 1000 // 1 hour
},
rolling: true,
store: MongoStore.create({
mongoUrl: env.MONGODB_CONNECTION_STRING
})
}));
Если бы я только поставил:
cookie: {
httpOnly: true,
maxAge: 60 * 60 * 1000 // 1 hour
},
Затем браузер получает файл cookie, но он не работает, поскольку поступает из https и перекрестного происхождения. Если я поставлю:
cookie: {
secure: true, // Ensure secure is set to true for HTTPS
sameSite: 'none', // Required for cross-origin cookies
httpOnly: true,
maxAge: 60 * 60 * 1000 // 1 hour
},
Тогда cookie вообще не будет получен во внешнем интерфейсе. Я развернул как интерфейсную, так и серверную часть в Vercel.
Я попытался поместить в файл cookie secure: true, SameSite: 'none', но тогда файл cookie вообще не был получен во внешнем интерфейсе.
🤔 А знаете ли вы, что...
Node.js позволяет создавать высокоэффективные приложения для обработки потоковой передачи данных.
Проблема решена путем установки доверенного прокси.
app.set('trust proxy', 1) // trust first proxy
Мохит Шарма подтвердил то же самое в своих комментариях.
Цитата: