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

대원님의 프로필 이미지
대원

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글, 댓글 작성하기

deserializeUser 에서 user 사용 req.user 언디파인드

작성

·

645

·

수정됨

0

routes/post.js 게시글 등록 요청시

User객체에 id값을 req.user.id로 설정하려하는데

에러나서 req.user 콘솔 찍어보면 undefined 가 출력됩니다.

passport/index.js 에서 deserializeUser 를 통해 user값이 req.user로 세팅되는걸로 들었는데 반환값이 없네요 ..

passport.deserializeUser()에 console.log 찍어보면 아무것도 출력되는게 없습니다.

 

 

스크린샷 2023-02-27 오후 8.36.58.png스크린샷 2023-02-27 오후 8.37.15.png스크린샷 2023-02-27 오후 8.37.31.png

답변 1

0

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

일단 req.login 하셨나요? passport.authenticate 부분에 있습니다. 그게 serializeUser를 호출해서 세션에 유저 정보를 저장합니다. 이걸 해야 나중에 deserializeUser에서 req.user를 만들어낼 수 있습니다.

대원님의 프로필 이미지
대원
질문자

네 로그인 할 때 routes/user.js 에서
post('/login' ) 할 때 req.login 작성이 되어있습니다.

 

스크린샷 2023-02-28 오후 8.28.31.png

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

serializeUser 안에도 콘솔로그 넣고, deserializeUser 안에도 콘솔 로그 넣어서 어디까지 실행되고 어디는 안 되는지 확인해보세요.

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

그리고 프론트에서도 axios에 withCredentials: true 하셨나요? 그래야 세션 쿠키가 전달됩니다.

대원님의 프로필 이미지
대원

작성한 질문수

질문하기