-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
로그인 테스트 중 발생했던 express-session 관련 질문입니다!
23.08.10 23:19 작성 23.08.10 23:45 수정 조회수 484
0
안녕하세요.
로그인 코드 작성 완료 후 테스트로 포스맨을 호출했을 때 2가지 오류가 발생했었습니다.
Error: Login sessions require session support. Did you forget to use
express-session
middleware?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
조현영
지식공유자2023.08.10
express-session은 세션쿠키(connect.sid와 req.session)를 구현해주는 것이고 passport.session은 패스포트 로그인 시 세션을 세팅하는 것이라 둘 다 필요합니다. COOKIE_SECRET은 쿠키를 암호화하는 키라서 아무 값이나 하셔도 됩니다.
typeorm은 0.3 쓰시면 됩니다. 0.3버전이 있는데 0.2버전을 쓸 이유는 없습니다.
답변 1