[dart] HTTP 요청 시에 인증 처리하기

Dart 언어를 사용하여 HTTP 요청을 보낼 때, 서버에서 요구하는 인증을 처리해야 하는 경우가 있습니다. 이를 처리하기 위해서는 HTTP 요청 헤더에 인증 정보를 포함시켜야 합니다. 이 포스트에서는 Dart에서 HTTP 요청에 인증 처리하는 방법을 알아보겠습니다.

Basic 인증

가장 간단한 형태의 HTTP 인증은 Basic 인증입니다. 이 경우에는 Base64로 인코딩된 사용자 이름과 비밀번호를 HTTP 요청의 Authorization 헤더에 포함시켜야 합니다.

아래는 Dart를 사용하여 Basic 인증을 포함하는 HTTP GET 요청을 하는 예제입니다.

import 'dart:convert';
import 'package:http/http.dart' as http;

void main() async {
  String url = 'https://api.example.com/data';
  String username = 'your_username';
  String password = 'your_password';
  
  String basicAuth = 'Basic ' + base64Encode(utf8.encode('$username:$password'));
  Map<String, String> headers = {'Authorization': basicAuth};

  var response = await http.get(Uri.parse(url), headers: headers);
  print(response.body);
}

Bearer 토큰

다른 일반적인 형태의 HTTP 인증은 Bearer 토큰을 사용하는 것입니다. Bearer 토큰은 보통 OAuth나 JWT (JSON Web Token) 인증에서 사용됩니다. 이 경우에는 HTTP 요청의 Authorization 헤더에 ‘Bearer’와 토큰 값을 포함시켜야 합니다.

아래는 Dart를 사용하여 Bearer 토큰을 포함하는 HTTP POST 요청을 하는 예제입니다.

import 'package:http/http.dart' as http;

void main() async {
  String url = 'https://api.example.com/data';
  String token = 'your_bearer_token';
  
  Map<String, String> headers = {'Authorization': 'Bearer $token'};

  var response = await http.post(Uri.parse(url), headers: headers, body: {'key': 'value'});
  print(response.body);
}

정리

Dart를 사용하여 HTTP 요청에 인증을 포함하는 방법에 대해 간단히 알아보았습니다. Basic 인증과 Bearer 토큰을 포함하는 방법을 예제 코드와 함께 살펴보았습니다. 이러한 방법을 응용하여 서버의 요구에 맞는 인증을 처리할 수 있습니다.

참고 문헌: Dart HTTP 공식 문서