passport를 사용해 로그인 상태를 유지하는 작업을 하려고 코드를 짜고, 브라우저를 통해서 로그인이 유지 되는지 실행해 봤을때, 다음과 같은 오류가 발생했다.
_context11.t0.reponse is undefined
라는 처음 보는 오류가 로깅되서 당황스러웠다.
어쨋든, 로그인 상태를 유지하기 위해 서버로 GET 요청을 보내는 과정에서 오류가 발생했음을 확인할 수 있어서, 서버 로그를 확인해 보았다.
서버 로그를 확인해 보니, 다음과 같은 에러 메시지를 확인할 수 있었다.
유저 관련 라우터에서 user 데이터가 undefined로 들어가고 있음을 확인했고, 바로 유저 라우터를 확인해봤다.
유저 라우터를 확인해보니, 유저 테이블을 조회하는 조건 부분에서 user.id
에 접근할 수 없음을 확인했다.
passport를 통해서 로그인을 유지하게되면, 각 요청마다 deserializeUser
함수가 실행되면서 request
에 유저 정보를 생성하기 때문에, req.user
로 접근해야 유저의 정보를 확인할 수 있었다.
해당 조건 부분을 id: req.user.id
로 수정하니, 유저 정보를 지속적으로 가지고 와서 성공적으로 로그인을 유지할 수 있었다.