인프런 커뮤니티 질문&답변

Randy님의 프로필 이미지
Randy

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

SSR시 쿠키 공유하기

SSR 쿠키 공유 강의 관련

작성

·

297

0

const cookie = context.req ? context.req.headers.cookie : '';
axios.defaults.headers.Cookie = '';
if (context.req && cookie) {
axios.defaults.headers.Cookie = cookie;
}

강의 잘 듣고 있습니다. 궁금한점이 있어서 문의드려요.

상단에 첨부한 부분 getServerSideProps 내부에서 서버 쿠키공유를 막을수 있다는 내용 관련 코드이구요, 영상에서 이 부분이 서버에서 실행이 된다고 언급을 하셨는데요. getServerSideProps는 frontend 서버에서 실행이 되는데 frontend 서버도 backend 서버처럼 하나이기 때문에 저쪽에서 컨트롤해줄수 있는건가요 ? 정확하게 잘 이해가 안가서 문의드립니다.

답변 3

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

요청을 보낸 다음 쿠키를 비우는 것과 요청을 보내기 전에 쿠키를 비우는 것은 반복 작업을 할 경우 동일한 효과를 냅니다. 제일 아래 있어도 되고 제일 위에 있어도 됩니다.

0

요청을 보낸다음에 쿠기를 비워주려면 

axios.defaults.headers.Cookie = ''

이 문장이 제일 아래에 있어야 하지 않나요?

const cookie = context.req ? context.req.headers.cookie : '';
axios.defaults.headers.Cookie = '';
if (context.req && cookie) {
axios.defaults.headers.Cookie = cookie;
}
context.store.dispatch({
type: LOAD_MY_INFO_REQUEST,
});
context.store.dispatch({
type: LOAD_POSTS_REQUEST,
});
context.store.dispatch(END);

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 getServerSideProps는 프론트 서버에서 실행되는 코드입니다. 사용자들은 많은 수의 브라우저로 접근하지만 프론트 서버는 하나이므로 axios.defaults.headers.Cookie=쿠키 로 쿠키를 설정하게 되면 프론트 서버에 이 쿠키가 설정되어 버립니다. 모든 브라우저가 프론트 서버를 거쳐 백엔드 서버로 요청을 보낼 때 같은 쿠키가 적용되어버리는 것입니다.

그래서 한 번 설정했다가 요청을 보낸 다음에는 axios.defaults.headers.Cookie = ''로 비워주는 것입니다.

Randy님의 프로필 이미지
Randy

작성한 질문수

질문하기