안녕하세요. nodejs를 수강하고 있는 학생입니다. 강의에서 로그인 기능을 만들어서, 검색을 통해
로그아웃 기능을 만들었습니다. 코드는 아래와 같습니다.
app.get('/logout', function(req, res, next){
req.logout(function(err) {
if (err) { return next(err); }
res.redirect('/');
});
});
로그아웃 버튼을 누르면 정상적으로 로그아웃이 됩니다. 그러고 마이페이지에 들어가면 로그인이
안 되어있으니 로그인을 하라는 문구까지 잘 뜹니다. 그러다가 페이지를 꾸미면서 욕심이 생겼습니다. 그래서
로그인이 안 되어있으면, 여태까지 만들었던 네비바가 다 뜨지만, 로그인이 됐으면 로그인 버튼을
가리기로 했습니다. 가리는 방식은 쿠키가 있을 때 nav.html에서 element를 가지고 와서
ejs파일에서 숨기기로 했습니다. 코드는 아래와 같습니다.
<%- include('nav.html') %>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.0/dist/js.cookie.min.js"></script>
<script>
if(Cookies.get()){
const logined = document.getElementsByClassName("logined")
for(let i=0; i<logined.length; i++){
logined[i].style.display ='none';
}
}
</script>
이렇게 했을 때, 로그인 하면 정상적으로 네비바가 가려집니다. 잘 작동해서 다음 단계로 넘어가려
했는데 로그아웃을 눌렀을 때 쿠키가 남아있는 것입니다. 이상하다 싶어서 마이페이지에 들어가니까
로그인 하라는 문구가 잘 뜨는 것입니다. 근데 네비바는 쿠키가 남아있는 것으로 인식하는 것인 건지
로그인을 했을 때의 상황처럼 몇 개의 네비바가 없는 것입니다. 직접적으로 application에서 쿠키를
지우면 모든 네비바가 다 나타납니다. 참고로 쿠키에 있는 정보 중 name으로 'connect.sid'라고
적혀있었습니다. 하다가 모르겠어서 질문 남깁니다. 어떤 것이 문제인 건지 잘 모르겠습니다.
ejs파일에있는 'Cookies.get()' 문법이 잘못 된 건지, 아니면 로그아웃 코드가 잘못 되어서
진짜 쿠키가 남아있는 것인지 알고싶습니다.