inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

getServerSideProps 쿠키 이슈 관련해서 질문드립니다! 도와주세요ㅠ

850

으하하

작성한 질문수 4

0

안녕하세요, 제로초님 강의 잘 들었습니다. 강의를 듣고 혼자서 프로젝트를 진행하는데 너무 막히는점이 있어서 질문드립니다.

마이페이지에서 유저 정보를 불러오는 작업을 하고 있습니다. 토큰을 받아서 쿠키에 저장하여 사용하고 있는데.. 배포시에 저 말고 다른 사람도 저의 토큰으로 요청을 보내는 모습이 발견되었는데 해결을 못하고 있어요ㅠ 로초님 강의 후반부에서 보긴봤었는데 상황이 약간 다른거 같아서 질문드려요ㅠ

saveCookies는 쿠키를 받아서 디스패치하여 스토어에 저장하는 함수이고

createCustomHeader는 Authorization : {`Bearer ${token}`}을 리턴하는 함수입니다.


export const getServerSideProps = wrapper.getServerSideProps(
  (store) => async (context) => {
    saveCookies(store, context);
    const rootState: RootState = store.getState();
    const user_id = rootState.loginState.user_id;

    axiosInstance.interceptors.request.use(
      async function (config) {
        try {
          config.headers = null;
          if (context.req && context.req.headers.cookie) {
            const allCookies = cookies(context);
            const accessToken = allCookies.accessToken;
            config.headers = createCustomHeader(accessToken);
          }

          return config;
        } catch (error) {
          console.log(error);
        }
      },
      function (error) {
        return Promise.reject(error);
      },
    );

    store.dispatch(getUserInfoInMypageRequest(user_id));

    store.dispatch(END);
    await store.sagaTask.toPromise();

    return {
      props: {},
    };
  },
);

ssr cookie redux react express nodejs Next.js

답변 1

0

제로초(조현영)

제 문제랑 비슷한 것 같은데요. 마찬가지로 쿠키를 초기화하는 코드를 강제로 넣어주셔야할 것 같습니다. 제가 axios.defaults.headers.cookie = '' 했듯요.

0

으하하

답변 감사드려요 그렇게 해봤는데 잘안되더라구요 혹시 백엔드에서 토큰을 받을때 백엔드에서 set-cookie로 주는게 아니라 response의 data로 받아서 클라이언트에서 쿠키를 set 해주는데 이 방식이 문제인걸까요???

0

제로초(조현영)

클라이언트에서 쿠키를 셋하는 게 어떻게 하신 건가요?

0

으하하

react-cookie 라이브러리를 사용했구요 로그인시에 백엔드서버에서 헤더가 아닌 body에 data로 토큰을 넘겨주는데 그걸 받아서 프론트에서 cookie.set('accessToken', response.data)로 저장해요요

0

으하하

현재 const axiosinstance = axios.create() 이런식으로 사용하는데 axios.defaults.headers.cookie = '1231' 이렇게 하면 인스턴스에도 영향이 갈까요!??

0

으하하

와...해결했어요.. interceptor로 초기화해줄때는 안되다가 제로초님이 한거처럼 defaults로 초기화하니까 되네요ㅠ 감사합니다

넥스트 버젼 질문

0

90

2

로그인시 401 Unauthorized 오류가 뜹니다

0

104

1

무한 스크롤 중 스크롤 튐 현상

0

192

1

특정 페이지 접근을 막고 싶을 때

0

116

2

createGlobalStyle의 위치와 영향범위

0

102

2

인라인 스타일 리렌더링 관련

0

98

2

vsc 에서 npm init 설치시 오류

0

157

2

nextjs 15버전 사용 가능할까요?

0

166

1

화면 새로고침 문의

0

129

1

RTK에서 draft, state 차이가 있나요?

0

160

2

Next 14 사용해도 될까요?

0

455

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

359

1

url 오류 질문있습니다

0

217

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

391

1

sudo certbot --nginx 에러

0

1293

2

Minified React error 콘솔에러 (hydrate)

0

478

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

256

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

338

1

npm run build 에러

0

525

1

front 서버 npm run build 중에 발생한 에러들

0

399

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

350

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

290

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

249

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

206

1