#node.js #express #amazon-cloudfront
#node.js #экспресс #amazon-cloudfront
Вопрос:
Чтобы сделать мое веб-приложение готовым к работе, я хотел установить для свойства cookie сеанса «secure» значение false на true. Приложение размещено на Aws и построено следующим образом:
Route53 -> CloudFront -> ELB (без кластера, только одно приложение)
CloudFront используется для обеспечения доступа к приложению через SSL. Приложение Nodejs прослушивает HTTP-порт. К сожалению, SessionCookie не установлен.
Если я установлю для secure значение false, логин будет работать, и файл cookie сеанса будет установлен. Так что, похоже, это зависит только от этого свойства. Я также установил для «доверенного прокси» значение true, но, к сожалению, безуспешно.
Express.js:
const ExpressApp=express();
ExpressApp.set("trust proxy", (ip)=>{
return true;
});
...
сеанс:
const expiryDate = new Date( Date.now() 60 * 60 * 1000 ); // 1 hour
return session({
genid: (req) => {
return uuid() // use UUIDs for session IDs
},
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: true,
proxy:true,
store: new MongoStore({ mongooseConnection: mongoose.connection }),
rolling: true,
cookie:{
secure:true,
httpOnly:true,
expires: expiryDate
}
})
CloudFront:
https://pasteboard.co/Ib9mTED.png