• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

로그인 테스트 중 발생했던 express-session 관련 질문입니다!

23.08.10 23:19 작성 23.08.10 23:45 수정 조회수 484

0

안녕하세요.

로그인 코드 작성 완료 후 테스트로 포스맨을 호출했을 때 2가지 오류가 발생했었습니다.

  1. Error: Login sessions require session support. Did you forget to use express-session middleware?

  2. 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버전을 쓸 이유는 없습니다.

dev kim님의 프로필

dev kim

질문자

2023.08.11

아하 넵 답변 감사합니다!