[python] 요청을 보낼 때 인증 정보 전송하기

안녕하세요! 이번에는 Python을 사용하여 HTTP 요청을 보낼 때 인증 정보를 전송하는 방법에 대해 알아보겠습니다.

일반적으로 많은 API들은 인증된 사용자만이 액세스할 수 있는 데이터나 기능을 제공하는데, 이를 위해 요청에 인증 정보를 포함시켜야 합니다. 파이썬에서는 requests 라이브러리를 사용하여 간편하게 HTTP 요청을 보낼 수 있습니다.

요청에 Basic 인증 정보 전송하기

HTTP 요청에 Basic 인증 정보를 전송하려면, 요청 헤더에 Authorization 필드를 추가해야 합니다. 이 필드의 값은 “Basic”과 사용자명/비밀번호를 Base64로 인코딩한 문자열을 함께 전송해야 합니다.

import requests
import base64

def send_request(url, username, password):
    # 사용자명과 비밀번호를 Base64로 인코딩
    credentials = base64.b64encode(f"{username}:{password}".encode()).decode()
    
    headers = {
        "Authorization": f"Basic {credentials}"
    }

    response = requests.get(url, headers=headers)
    # 응답 처리
    
    return response

위의 예시 코드에서 send_request 함수는 전달받은 URL과 사용자명, 비밀번호를 이용하여 Basic 인증 정보를 생성하고, Authorization 헤더에 포함시켜 GET 요청을 보냅니다. 응답은 response 변수에 저장되며, 필요한 처리를 수행한 후 반환합니다.

요청에 JWT 인증 토큰 전송하기

JWT(Json Web Token)는 인증을 위한 안전한 방법으로 널리 사용되는 토큰 기반의 인증 시스템입니다. HTTP 요청에 JWT 인증 토큰을 전송하는 방법은 Basic 인증과 다소 다릅니다.

import requests

def send_request(url, jwt_token):
    headers = {
        "Authorization": f"Bearer {jwt_token}"
    }

    response = requests.get(url, headers=headers)
    # 응답 처리

    return response

위의 예시 코드에서 send_request 함수는 전달받은 URL과 JWT 인증 토큰을 이용하여 GET 요청을 보냅니다. JWT 인증 토큰은 Authorization 헤더에 “Bearer”라는 접두어와 함께 포함되어야 합니다.

마무리

Python을 사용하여 HTTP 요청을 보낼 때 인증 정보를 전송하는 방법에 대해 알아보았습니다. Basic 인증과 JWT 인증 토큰을 사용하는 방법을 예시 코드와 함께 안내했습니다. 각각의 API나 서비스에 맞는 인증 방식을 사용해야 하며, 실제 사용 시에는 보안을 고려하여 인증 정보를 처리해야 합니다.

더 자세한 내용은 아래의 참고 자료를 확인해주세요.