Express.js сеансовые файлы cookie не работают с secure=true в CloudFront

#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