인프런 커뮤니티 질문&답변
로그인 테스트 중 발생했던 express-session 관련 질문입니다!
해결된 질문
작성
·
761
·
수정됨
0
안녕하세요.
로그인 코드 작성 완료 후 테스트로 포스맨을 호출했을 때 2가지 오류가 발생했었습니다.
Error: Login sessions require session support. Did you forget to use
express-sessionmiddleware?secret option required for sessions
1번은 express-session 아래에 passport를 작성하라는 것 같아서 강사님의 깃 보고 아래 코드를 추가했었고
app.use(cookieParser());
app.use(
session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
},
}),
);
2번은 검색해보니 secret 설정을 하면 된다고 해서 .env 파일에 COOKIE_SECRET에 대한 값을 넣어줘서 1,2번 전부 해결했었습니다.
다만, 강의에는 이미 들어가있던 부분이였던 아래 코드와 passport.session을 같이 사용하는 이유가 궁금합니다! passport.session만 사용하니 express session의 미들웨어를 사용하라는 것 같았고, express session을 찾아보니 express session만 사용해서 로그인을 구현하기도 하는 것 같았습니다.
app.use(cookieParser());
app.use(
session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
},
}),
);
그리고 secret는 express session의 암호로만 알고 있어도 되는걸까요? .env 파일에 제가 임으로 설정한 암호를 예를들어 COOKIE_SECRET=12314 이런식으로 작성해놓는게 맞는건가요??
++ 그리고 수업 별개로 추가 질문 사항이 있습니다!
현재 강의에서 사용되는거는 typeORM 0.3 버전인가요? 실무에서는 0.2 버전보다 0.3으로 많이 사용되는건가요??
답변 1
1
express-session은 세션쿠키(connect.sid와 req.session)를 구현해주는 것이고 passport.session은 패스포트 로그인 시 세션을 세팅하는 것이라 둘 다 필요합니다. COOKIE_SECRET은 쿠키를 암호화하는 키라서 아무 값이나 하셔도 됩니다.
typeorm은 0.3 쓰시면 됩니다. 0.3버전이 있는데 0.2버전을 쓸 이유는 없습니다.






아하 넵 답변 감사합니다!