[flutter] dio_retry 패키지를 이용한 인증 오류 처리 방법

인증 오류는 모바일 앱에서 흔히 발생하는 문제 중 하나입니다. 주로 인증 토큰이 만료되거나 유효하지 않을 때 발생하는데, 이를 처리하기 위해서는 네트워킹 라이브러리인 Dio와 dio_retry 패키지를 함께 사용할 수 있습니다.

1. dio_retry 패키지 추가

우선, pubspec.yaml 파일에 dio_retry 패키지를 추가합니다.

dependencies:
  dio: ^4.0.0
  dio_retry: any

그리고 터미널에서 flutter pub get 명령어를 실행하여 패키지를 설치합니다.

2. DioInterceptor 설정

다음으로, DioInterceptor를 설정하여 인증 오류가 발생했을 때 자동으로 재시도할 수 있도록 만들어야 합니다.

import 'package:dio/dio.dart';
import 'package:dio_retry/dio_retry.dart';

void main() {
  final dio = Dio();
  dio.interceptors.add(RetryInterceptor(
    dio: dio,
    options: const RetryOptions(
      retries: 3,
    ),
  ));
}

위의 코드에서는 3번까지 재시도하도록 설정했지만, 필요에 따라 이 값을 조정할 수 있습니다.

3. 인증 오류 처리

마지막으로, DioInterceptor를 사용하여 인증 오류를 처리합니다.

try {
  final response = await dio.get('https://example.com/api/data');
  // 성공적으로 데이터를 받아온 경우의 처리
} on DioError catch (e) {
  if (e.response?.statusCode == 401) {
    // 인증 오류가 발생한 경우의 처리
  } else {
    // 기타 네트워크 오류가 발생한 경우의 처리
  }
}

위의 코드에서는 DioError를 활용하여 인증 오류를 처리하는 부분을 보여줍니다.

이제, dio_retry 패키지를 사용하여 Flutter 앱에서 인증 오류를 처리하는 방법을 알아보았습니다.

더 자세한 내용은 dio_retry 패키지 공식 문서를 참고하시기 바랍니다.