• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 로그인을 안 했는데 쿠키가 들어가 있는 현상

로그인을 안 했는데 쿠키가 들어가 있는 현상

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #68697

    이수인
    참가자
     안녕하세요. 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()' 문법이 잘못 된 건지, 아니면 로그아웃 코드가 잘못 되어서
    진짜 쿠키가 남아있는 것인지 알고싶습니다.
    #68740

    codingapple
    키 마스터
    쿠키남아있어도 로그아웃은 되어있을 수 있습니다
    로그아웃요청시 서버에서 쿠키도 삭제하라고 코드짜거나 하면 될듯요
    #69005

    이수인
    참가자
    그럼 혹시 쿠키가 없고 로그인도 안 된 상태에서 로그아웃 버튼을 눌렀을 때 없던 쿠키가 생기는 건
    왜 그러는 건가요??
    #69039

    codingapple
    키 마스터
    passport 라이브러리 만든 사람이 그렇게 만들었나봅니다 알 수 없군요
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠