inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tạo NodeBird SNS bằng React

세션 갱신 문의 건

492

matromen

3 câu hỏi đã được viết

0

 세션 갱신을 구현 중  도움을 주셨으면 합니다.

- CSR 랜더링 시에는 정상적으로 백엔드 및 프론트 둘다 쿠키 expires가 변경 되는 것을 확인 하였으나

- SSR 랜더링 시에는 const cookie = ctx.isServer ? ctx.req.headers.cookie : ''; 

    통한 request headers에 Cookie 전달 확인은 되었으나

    response header에  set-cookie가 없고

    expires가 변경 되지 않습니다.

백엔드 설정

app.use(session({
    resave: true,
    saveUninitialized: false,
    rolling: true,
    secret: process.env.COOKIE_SECRET,
    cookie: {
        httpOnly: true,
        secure: false,
        maxAge: 60*60*1000,
    },
    name: 'kbk'
}));

프론트 설정

    server.use(session({
        resave: false,
        saveUninitialized: false,
        secret: process.env.COOKIE_SECRET,
        cookie: {
            httpOnly: true,
            secure: false,
        },
        name: 'kbk'
   }));

브라우저에서 Network탭 확인 시

 - csr 랜더링

     요청주소 :  axios를 통한 서버쪽 주소 요청

 - ssr 랜더링 시

    요청주소: 프론트 주소

javascript react

Câu trả lời 7

0

zerocho

지금 요청은 saga 액션으로 만들지 마시고, 그냥 getServerSideProps에서 axios 요청을 바로 보내세요. 그래야 response에 접근할 수 있습니다.

0

matromen

말씀하신 프론트 서버에서 axios로 백엔드에 요청을 보내면 응답 헤더에 set-cookie는 확인이 됩니다.

그대로 다시 브라우저에 set-cookie 응답 헤더로 보내라고 하시는데

  return axios.get(`/print?${paramUri}`, {
        withCredentials: true
   }).then((result) => ?.writeHeader('Set-Cookie', result.headers['set-cookie'][0]);

saga에서 서버로 부터 결과 값을 redux의 상태 값을 변경하고

페이지가 랜더링 되면 useSelector를 통해 redux status에 값을 가지고 와서 페이지를 재 랜더링 하는 것으로 알고 있는데요.

그럼 ssr의 경우 위 행위가 서버들에서 이루지는 건데

어떻게  saga에서 브라우저에 응답을 줄 수있는지 모르겠습니다.

아니면 header값만 변경 하는 건지? , saga에서 Http response객체는 따로 만들어야 하는지?

정말 모르겠습니다.

도와 주세요~

0

zerocho

프론트 서버에서 axios로 백엔드에 요청을 보내면 응답 헤더에 set-cookie가 들어있을텐데 그걸 그대로 다시 브라우저에 set-cookie 응답 헤더를 보내주면 됩니다.

브라우저에서 프론트서버로 쿠키를 보냈을 때 그걸 다시 axios에 넣어 백앤드로 여청보내는 것처럼요.

프론트 서버는 이처럼 브라우저와 백엔드를 사이에 전달만 해주는 역할입니다.

0

matromen

프론트서버 - 백엔드서버  구조에서 보통 세션운영을 어떻게 하는지 궁금 합니다.

0

zerocho

ssr시에는 set-cookie가 없죠. set-cookie는 브라우저 대신 프론트서버에서 받았으니까요. 프론트서버에서 다시 브라우저로 set-cookie 해줘야합니다.

0

matromen

ssr 시  set-cookie 확인 안됨

csr 시 백엔드로 부터 set-cookie 확인

0

zerocho

기본적으로 프론트 서버는 쿠키를 설정하지 않고 브라우저와 백엔드간의 쿠키를 서로 전달해주는 매개체 역할을 하면 됩니다. ssr시 set-cookie를 어떻게 확인하셨나요?

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

275

1

배포 진행 후 Highlight updates components render 표시

0

450

1

똑같은 기능을 하는 테이블

0

455

4

관계형

0

314

2

프론트 서버를 이용하지 않는경우

1

302

3

인피니트 스크롤링 사용시 오류

0

280

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

436

2

req.user가 언제 생성되나요??

0

332

2

Cannot read property 'id' of null 에러

0

336

1

리트윗한 게시글 불러오는 sequelize

0

255

1

result.data에서 images인 이유

0

283

2

takeLatest에 대한 질문입니다.

1

344

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

504

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

261

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

448

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

587

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

368

1

nodejs mvc 패턴

0

981

4

사용하고 보니, 람다 구성이 궁금합니다!

0

269

1

제로초님

0

448

1

새로고침 로그인 풀림 문제.

0

249

1

안녕하세요. 강의 너무 감사합니다

0

159

1

제로초님

0

174

1

안녕하세요 ssr 관련 질문드립니다

0

282

2