• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

23.02.27 20:40 작성 23.02.27 20:44 수정 조회수 542

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를 만들어낼 수 있습니다.

대원님의 프로필

대원

질문자

2023.02.28

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

 

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

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

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