inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

배달앱 클론코딩 [with React Native]

토큰 재발급하기(axios interceptor)

useEffect , interceptor 질문입니다!

353

띠온이

작성한 질문수 7

1

선생님 안녕하세요, 

AppInner.tsx 코드에서 interceptor 부분 중 질문있습니다.

useEffect 에 의존값이 없으면 최초 렌더링시에만 호출되는 걸로 알고 있는데요.

dispatch는 정적객체라 안적어도 상관없다고? 하셔서 없는것과 마찬가지로 생각했습니다. 그럼 interceptor가 포함된 useEffect 코드는 최초 렌더링만 된다고 이해가 되는데요.

그럼 여기서 궁금한건 요 두가지 경우예요.

  1. 인터셉터는 419 에러가 뜰때마다 호출되어야해서 최초렌더링만 되어선 안된다 (?)
  2. 최초 렌더링 때 인터셉터가 만들어져 대기하고 있고, 419 에러때 마다 인터셉터가 가로챈다.

1, 2번중 어떤걸로 이해해야 할까요? 아니면 둘다 틀린건지 궁금합니다.

 

// 앱 실행 시 토큰 있으면 로그인하는 코드
  useEffect(() => {
    const getTokenAndRefresh = async () => {
      try {
        const token = await EncryptedStorage.getItem('refreshToken');
        if (!token) {
          return;
        }
        const response = await axios.post(
          `${Config.API_URL}/refreshToken`,
          {},
          {
            headers: {
              authorization: `Bearer ${token}`,
            },
          },
        );
        dispatch(
          userSlice.actions.setUser({
            name: response.data.data.name,
            email: response.data.data.email,
            accessToken: response.data.data.accessToken,
          }),
        );
      } catch (error) {
        console.error(error);
        if ((error as AxiosError).response?.data.code === 'expired') {
          Alert.alert('알림', '다시 로그인 해주세요.');
        }
      }
    };
    getTokenAndRefresh();
  }, [dispatch]);

 

react-native

답변 1

1

제로초(조현영)

2번이 정확한 이해입니다. 한 번 등록하면 인터셉터는 계속 유지됩니다.

0

띠온이

감사합니다~! 

앱실행시 네이버맵 [401] 에러

0

1064

2

스타일링 라이브러리

0

160

2

expo, cli 선택 중에 고민이 있습니다.

0

180

2

JDK 버전이 달라도 괜찮나요?

0

240

2

dimenstion usewindowdeminstion

0

130

3

[맥 전용]환경 설정하기 1편 & [맥 전용]환경 설정하기 2편의 영상이 안나옵니다.

0

217

1

jdk11 버전과 gradle 버전의 호환성 관련 질문드립니다.

0

407

2

강의 외 질문입니다!

0

164

2

react native랑 맞는 ui 라이브러리 어떤게 좋을까요?

0

1554

2

react native와 spring boot 연결

0

365

1

java가 아닌 .kt에서 code push 에러가 발생합니다.

0

222

2

flipper 239 에러가 발생합니다.

0

172

2

package.json에 /lib/panino.js 문제입니다.

0

480

2

window - mac 협업 과정 질문합니다

0

221

1

ios 빌드 중 RCTBridgeDelegate.h import 오류

0

294

2

ios 앱 빌드 중 hermesEnabled 관련 오류발생

0

249

2

Socket 연결시 질문 드립니다.!

0

157

2

wifi 환경에서 axios 통신이 로컬서버에서 안됩니다.

0

430

2

iOS render error 질문드립니다.

0

417

2

iOS 가상머신 오류

0

173

2

npc react init 명령어 실행시 발생되는 오류

0

224

1

nom start 시 오류

0

122

1

NextJS 기반으로 만들어서 웹뷰 React Native로 배포 가능한가요?

0

1019

2

안드로이드 rn75 버전에 맞게 설정 중에 android13 다운로드에 대해서 막혔습니다!

0

187

2