인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김건희님의 프로필 이미지
김건희

작성한 질문수

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

토큰 질문있습니다!

작성

·

119

0

안녕하세요 제로초님

 

질문 1.

저번에 질문에서 답변주셨을 때

카카오나 인스타그램 같은 경우 3일 뒤에라도 앱에 접속하면  다시 로그인할 필요없이 로그인이 되어 있잖아요? 이같은 경우 유효기간을 오래 잡고 앱에 접속할 때마다 accesstoken과 refreshtoken을 새로 갱신하고 있을거라고 하셨었는데 

 

이번 강의에서는 앱애 새로 접속할 때 accesstoken은 새로 갱신해주지만 refreshtoken은 새로 갱신하고 있지 않나요?

 

Appinner 페이지에서

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') {
          // refreshToken 만료되었을 때
          Alert.alert('알림', '다시 로그인 해주세요.');
        }
      }
    };
    getTokenAndRefresh();
  }, [dispatch]);

 

이코드가 앱애 새로 접속 할 때마다 accesstoken은 새로 갱신해주고 있는것 같은데 refreshToken을 새로 갱신해주고 있는것 같지 않아서요!

 

만약 refreshtoken을 새로 갱신시켜주고 있지 않다면 어떻게 새로 갱신시켜줘야 하는지 궁금합니다!

 

질문2 실무에서는 앱접속시 리프레시 토큰을 새로 갱신시키지 않는게 일반적인지 궁금합니다!.(왜냐하면 그렇게 되면 앱에 접속할 때마다 로그인 해야 하는 불편함이 있을것 같아서요!) 

답변 1

0

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

이거 제 강좌에서 낸 숙제입니다. 직접 한 번 해보세요.

김건희님의 프로필 이미지
김건희
질문자

네 열심히 해보겠습니다!

김건희님의 프로필 이미지
김건희

작성한 질문수

질문하기