개발 환경일 때, https 를 사용하지 않고 http를 사용할 때 쿠키가 넘어오지 않는 현상이 나타날 때가 있다.
const expressSession = require('express-session');
app.use(
expressSession({
secret: 'secret',
resave: false,
saveUninitialized: false,
store: sessionStore,
name: 'connect.sid',
rolling: true,
cookie: {
httpOnly: true,
// secure: true, 이 부분을 true로 할 경우 https에서만 쿠키를 전달함
maxAge: 1000 * 60 * 60 * 24,
},
})
);
위 소스처럼 express session의 cookie 값에 secure를 true로 할 경우 http 환경에서는 쿠키가 넘어오지 않는다.
production 환경에서는 설정해둬야 하지만 개발환경, http 일 때는 사용하지 않을 수 있도록 수정해두자
const expressSession = require('express-session');
app.use(
expressSession({
secret: 'secret',
resave: false,
saveUninitialized: false,
store: sessionStore,
name: 'connect.sid',
rolling: true,
cookie: {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
maxAge: 1000 * 60 * 60 * 24,
},
})
);