인프런 커뮤니티 질문&답변

진호님의 프로필 이미지
진호

작성한 질문수

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

passport 세팅 및 회원가입 만들기

passport 미들웨어를 express-session 밑에다가 반드시 적어야하는 이유

해결된 질문

작성

·

253

0

[passport 세팅 및 회원가입 만들기] 강의 중 passport 미들웨어를 왜 express-session 밑에다가 반드시 적어야한다고 하셨는데 이유는 나오지 않았었습니다
이유는 무엇일까요?
GPT도 써보았지만 생성형 AI라서 틀린 대답일 수 있으므로 강의자분께 질문드립니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

진호님의 프로필 이미지
진호
질문자

빠른 답변 고맙습니다:)

알려주신 링크 확인해보았습니다
passport 미들웨어를 왜 express-session 밑에다가 반드시 적어야 하는지는
번역기를 이용해서 번역해 보아도, 여러번 읽어보아도 아직 잘 모르겠습니다
예시 상으로는 강의 나온 코드처럼 expression-session 코드 다음에 passport.initialize(), passport.session()이 나왔지만 그에 대한 설명은 명확하지 않다고 느껴집니다

어느부분에서 "passport 미들웨어를 왜 express-session 밑에다가 반드시 적어야"하는 것과 연결되는 것으로 이해할 수 있을까요?
image번역 버젼 (DeepL)
Express 또는 Connect 기반 애플리케이션에서 Passport를 사용하려면 필요한 passport.initialize() 미들웨어로 애플리케이션을 구성하세요. 애플리케이션에서 영구 로그인 세션을 사용하는 경우(권장 사항이지만 필수는 아님) passport.session() 미들웨어도 사용해야 합니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

passport.initialize는 session 밑일 필요가 없고요. passport.session은 express-session 밑이어야 합니다. 말로 설명되어 있는게 아니라 코드 부분을 보시면 됩니다. express-session을 통해서 passport.session이 돌아가는 겁니다.

실제 구현도 그렇습니다.

https://github.com/jaredhanson/passport/blob/33b92f96616642864844753a481df7c5b823e047/lib/sessionmanager.js#L21

진호님의 프로필 이미지
진호
질문자

if (!req.session) { return cb(new Error('Login sessions require session support. Did you forget to use express-session middleware?')); }

에러 메시지까지 보니 명확하네요 답변 고맙습니다 🙂

진호님의 프로필 이미지
진호

작성한 질문수

질문하기