[flutter] 플러터 Dio에서의 사용자 인증 기능 구현 방법

플러터(Flutter) 앱을 개발하다 보면 사용자 인증과 관련된 기능을 구현해야 할 때가 있습니다. Dio는 네트워크 요청을 보내는 데 사용되는 강력한 패키지 중 하나입니다. 이 기술 블로그에서는 Dio를 사용하여 사용자 인증 기능을 구현하는 방법에 대해 알아보겠습니다.

Dio와는 무엇인가?

Dio는 플러터에서 네트워크 요청을 보내기 위한 빠르고 간단한 패키지입니다. Dio는 RESTful API와 통신하고 JSON을 처리하는 데 매우 유용합니다. 이 패키지를 사용하면 효율적으로 네트워크 요청을 수행할 수 있습니다.

Dio 패키지 추가하기

먼저, pubspec.yaml 파일에서 Dio 패키지를 추가합니다.

dependencies:
  dio: ^4.0.0

그런 다음 터미널에서 다음 명령을 사용하여 패키지를 설치합니다.

flutter pub get

Dio를 사용한 사용자 로그인 요청 예제

아래 예제는 Dio를 사용하여 사용자 로그인 요청을 보내는 방법을 보여줍니다.

import 'package:dio/dio.dart';

void loginUser() async {
  Dio dio = Dio();
  try {
    Response response = await dio.post('https://example.com/login', data: {
      'username': 'user1',
      'password': 'pass123'
    });
    print(response.data);
  } catch (e) {
    print(e);
  }
}

위의 코드에서 loginUser 함수는 Dio를 사용하여 POST 요청을 보내고, 사용자명과 비밀번호를 함께 전송합니다. 응답은 response.data에서 확인할 수 있습니다.

헤더에 사용자 토큰 추가하기

사용자가 로그인하고 토큰을 받았다면, 이 토큰을 이후의 모든 요청의 헤더에 추가해야 합니다. 아래 예제는 Dio를 사용하여 사용자 토큰을 포함시키는 방법을 보여줍니다.

void getUserData() async {
  String authToken = 'Bearer <user_token>'; // 사용자 토큰
  Dio dio = Dio();
  dio.options.headers['Authorization'] = authToken;

  try {
    Response response = await dio.get('https://example.com/userdata');
    print(response.data);
  } catch (e) {
    print(e);
  }
}

위의 코드에서 getUserData 함수는 사용자 토큰을 헤더에 추가한 뒤 GET 요청을 보냅니다.

결론

이번 기술 블로그에서는 Dio를 사용하여 사용자 인증 기능을 구현하는 방법에 대해 살펴보았습니다. Dio를 사용하면 네트워크 요청을 보다 쉽게 처리할 수 있습니다. 사용자 인증과 관련된 작업을 개발할 때 Dio를 활용하여 빠르고 효율적인 코드를 작성할 수 있습니다. Dio의 활용은 플러터 앱을 개발하는 데 도움이 될 것입니다.

참고문헌: