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

home2 게시판 Node.js, Express 게시판 세션의경우 react가 구동되는 port 에는 저장이 안되나요?

세션의경우 react가 구동되는 port 에는 저장이 안되나요?

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

    민성준
    참가자

    저의 경우 ejs 대신 next.js 환경에서 react를 사용해서 실습을 진행하고있는데요,

    다른 챕터는 모두 무리없이 진행되다가 

    Part.3 (회원인증기능 2) 아이디 비번을 DB와 비교하고 세션 만들어주기 챕터에서

    브라우저 쿠키탭에 세션이 저장되는 부분에서 막혀서 문의드립니다

    server.js 는 8080 포트에서실행중인 상태에서

    react 는 3000 포트에서 실행되는데요, 

     

    async function login(e: any) {
        e.preventDefault();
        const data = { id: "admin", pw: "1234" };
        await fetch("http://localhost:8080/login", {
          method: "post",
          body: JSON.stringify(data),
          headers: {
            "Content-Type": "application/json",
          },
        });
      }

    로그인 버튼 클릭시 위 함수를 통해  post 요청을 보내면

    passport.serializeUser 까지 정상적으로 수행돼서

    app.post(
      "/login",
      passport.authenticate("local", { failureRedirect: "/fail" }),
      function (req, res) {
        res.send("완료");
        console.log("정상수행");
      }
    );

    passport.authenticate 성공시 호출되는 콜백함수까지 도달해서 "정상수행" 을 출력하는데,

    정작 브라우저의 Cookies 탭에는 session 정보가 저장이 안됩니다. (강의와 똑같이 진행시 저장됨)

    react 와 server 포트가 분리돼서 그런건가 생각되는데 

    ejs파일을 사용안하고 react를 사용하는 환경에서 세션정보를 저장하는 방법이 있을까요?

     

     

     

     

    #30873

    codingapple
    키 마스터

    fetch('/login', {
      credentials: 'include'
    })

    이런 옵션 켜면 fetch요청시 다른 주소여도 쿠키같은거 저장해줍니다 

    서버에는 cors 옵션도 켜놔야합니다 

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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