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

home2 게시판 Node.js, Express 게시판 로그인 후 로그인 여부 유무 정보 질문입니다.

로그인 후 로그인 여부 유무 정보 질문입니다.

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

    김준기
    참가자
    현재 ejs가 아닌 node.js로 express 서버 만들고 프론트에서 React로 localhost 두 개 사용하여 홈페이지 제작하고 있습니다.
    
    Nav Bar에 로그인 전에는 'log in' 글씨가, 로그인 후에는 'My page'로 나오도록 설정하고 있습니다.
    
    그런데 로그인을 해서, 메인으로 redirect한 이후에 바로 로그인 정보가 반영되지 않고, 새로고침 1,2회를 하고 나서야 로그인 정보가 반영됩니다.
    
    그리고 마이페이지에 접속을 해도 같은 현상이 벌어집니다.

    어디를 건드려야 메인으로 redirect 되자마자 로그인 여부가 반영될까용?

    아니면 이렇게 세션로그인 하는게 아닌가용?

     

    <h1>프론트 사이드</h1>

     
    const NavBarElement = () => {
      var [isLoggedIn, setIsLoggedIn] = useState(false);
      useEffect(() => {
        axios
          .get("http://localhost:8080/session", { withCredentials: true })
          .then((result) => {
            if (result.data.message) {
              console.log(result.data)
              setIsLoggedIn(false);
            } else {
              console.log(result.data)
              setIsLoggedIn(true);
            }
          })
          .catch((err) => {
            console.log(err);
          });
      }, []);
    
    
      return (
                <Nav>
                  {isLoggedIn || <Nav.Link href="/login">Log in</Nav.Link>}
                  {isLoggedIn || <Nav.Link href="/signup">Sign up</Nav.Link>}
                  {isLoggedIn && (
                    <Nav.Link href="http://localhost:8080/mypage">My page</Nav.Link>
                  )}
                  {isLoggedIn && (
                    <Nav.Link href="http://localhost:8080/logout">Log out</Nav.Link>
                  )}
                </Nav>
    -------------------------------------------------------------------------------------------------------------------
    서버 사이드
    
    app.get("/session", function (요청, 응답) {
      if (요청.user) {
        응답.json(요청.user);
      } else {
        응답.json({ message: "No session data" });
      }
    });
    
    #109921

    codingapple
    키 마스터
    새로고침해도 바로 뜨게 만들고 싶으면 
    로컬스토리지에 유저이름이나 로그인여부 저장해두고 거기서 꺼내씁시다
    #109938

    김준기
    참가자
    앗, 제 질문은
    
    로그인 페이지에서 로그인을 하고 메인 페이지로 이동했는데도 로그인 정보가 없다는 게 문제입니당 (콘솔에 유저 데이터 없음)!
    
    메인 페이지로 이동한 상태에서 새로고침을 해야 로그인 정보가 콘솔창에 뜹니다.
    #109973

    codingapple
    키 마스터
    useEffect가 다시 실행안되어서 그런듯요 
    로그인하고나서 결과를 로컬스토리지에 저장해두고 useEffect에서 로컬스토리지에 있는거 꺼내쓰라고 합시다 [] 지우고요 
    
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 호 / 개인정보관리자 : 박종흠