inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

passport로 이메일 로그인 만들기

req.login에서 passport.serializeUser 호출 원리

214

인성

작성한 질문수 1

1

passport로 로그인 실습을 진행중에 있습니다.

passport.initialize(); 이후에 localStrategy 등록해둔 메서드를 통해 로그인 여부 확인하는 데까지는 까지는 이해가 되었습니다.

그런데 /controller/auth.js 에서 req.login 이후에 passport.serializeUser이 호출되는 방식이 이해가 안되네요.
www.passportjs.org 에서문서를 읽어보고 있는데 꼼꼼함이 부족한지 이해가 잘 안되네요.

req.login 메서드 자체를 passport에서 정의하고 있고 login 메서드가 호출될때 자동으로 serializeUser가 호출되는건가요?

node.js mysql mongodb express typescript socket.io jwt

답변 2

1

제로초(조현영)

네 passport.initialize를 하면 req에 login 메서드가 등록됩니다. req.login을 호출하면 req.user에 user를 저장하면서 serializeUser 함수를 호출하고, done에 넣은 값을 세션(쿠키)에 저장합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

인성님의 질문에 대한 답변으로, req.login에서 passport.serializeUser 호출 원리에 대해 궁금하신 것으로 이해했습니다. Passport.js를 사용하는 과정에서 req.login 메서드를 호출할 때 passport.serializeUser 함수가 어떻게 호출되는지에 대한 원리에 대해 설명이 필요하신 상황으로 보입니다.

이와 관련하여 “passport.serializeUser에 대해서 질문드립니다.” 라는 제목의 질문과 그에 대한 답변을 참고하시면 도움이 될 것 같습니다. 이 자료에서는 serializeUser 함수의 역할과 done 함수의 사용에 대한 설명이 포함되어 있습니다. 특히, serializeUser 함수가 로그인 작업 시 세션에 어떤 데이터를 저장할지 결정하는 메서드라는 점과 done 함수의 역할에 대한 설명이 유익할 것입니다.

간단히 요약하자면, passport.serializeUser는 사용자의 식별자(보통 사용자 ID)를 세션에 저장하여 향후 사용자 인증을 유지하는 데 사용됩니다. 사용자가 로그인할 때 req.login 메서드가 호출되며, 이 과정에서 serializeUser가 호출되어 세션에 사용자의 ID가 저장되는 방식입니다.

해당 질문에서는 req.loginserializeUser가 어떻게 호출되며, 그 과정에서 done 함수의 역할이 무엇인지에 대한 구체적인 설명이 있으므로, 질문하신 내용과 밀접한 관련이 있습니다.

이 내용을 참고하시어 req.loginpassport.serializeUser의 관계 및 원리를 좀 더 이해하실 수 있기를 바랍니다.

passport.serializeUser에 대해서 질문드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

깃헙 질문

0

79

2

강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.

0

75

1

aws - lightsail 이용 관련

0

57

1

4강 http 서버 만들때 ESM방식으로 해도 될까요?

0

79

2

모듈 사용 시 단점이 있나요?

0

79

1

node.js 버전 및 typescript 적용 문의

0

92

2

12.7. 방장기능(강퇴) 질문드립니다.

0

78

2

12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요

0

68

1

12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.

0

73

2

12.7.1스스로 해보기 질문되나요

0

89

3

시퀄라이즈 실습하기 질문드립니다.

0

188

9

<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.

0

94

2

크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.

0

110

2

구매 결제관련 질문입니다 !

0

121

1

다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제

0

131

2

node 설치 방법이 전혀다르게 바뀐것 같습니다.

0

148

2

12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류

0

120

2

무료/프리미엄 동시 소유 시 질문

0

115

1

비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?

0

134

2

10강 cors에러 localhost:4000으로 접속했을때 에러

1

156

2

webstorm 해결할 수 없는 변수 문제

0

152

2

혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?

0

147

2

LightSail 실행 중 오류 질문드립니다!

0

199

2

RedisStore 사용법 질문

0

131

2