강의

멘토링

커뮤니티

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

이승연님의 프로필 이미지
이승연

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

req.inAutenticated()에서 항상 false가 반환됩니다.

해결된 질문

작성

·

292

0

/login 요청 이후에 브라우저에서 쿠키에 connect.sid가 생기는 것을 확인했습니다 .

이후에 로그아웃 요청을 보내려고 하는데 middleware에서 isLoggedin 실행까지는 문제없이 잘 되나 req.isAuthenticated()가 자꾸 false를 반환해서 통과하지 못하고 있습니다. 

내부에서 req.user.id를 찍었을 때 로그인된 계정의 user.id를 제대로 출력하는걸 봐서는 세션이 전달이 안된건 아닌 것 같은데 isAuthenticated가 작동하지 않는 이유가 있을까요?

답변 1

0

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

console.log(req.user.id, req.isAuthenticated()) 한번에 해보세요.

이승연님의 프로필 이미지
이승연
질문자

죄송합니다 deserialize에서 오타가 있었네요ㅠㅠ 수정하니까 제대로 작동합니다! 근데 로그아웃이 제대로 됐다고 응답이 브라우저에 도착하고 나서도 브라우저에서 쿠키에 connect.sid가 그대로 있던데 상관없는건가요? 로그인 요청만 연속으로 두번 보낼 때 두번째 요청이 거절되고 있고, 로그인을 하지 않은 상태로 로그아웃 요청시 403 에러가 뜨는걸로 봐서는 로그인 여부는 제대로 체크되는 것 같은데 신경이 쓰여서요.

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

네 connect.sid는 남아있어도 크게 상관은 없습니다. 거슬린다면 res.clearCookie로 지울 수 있습니다.

이승연님의 프로필 이미지
이승연
질문자

답변 정말 감사합니다ㅠㅠ!!! 며칠째 로그인/로그아웃때문에 고생했는데 덕분에 잘 해결 한 것 같아요! 남은 강의도 열심히 듣겠습니다 ^^!

이승연님의 프로필 이미지
이승연

작성한 질문수

질문하기