[python] 요청에 대한 인증 토큰 유지하기

웹 애플리케이션에서 API를 사용할 때 인증 토큰은 매 요청마다 제공되어야 합니다. 이 토큰은 사용자의 인증 정보를 포함하고 있으므로, 보안적인 이유로 매번 새로 발급받아 사용해야 합니다. 그러나 매번 토큰을 수동으로 입력하거나 발급받는 것은 불편할 수 있습니다. 이러한 문제를 해결하기 위해 파이썬에서는 인증 토큰을 유지하는 방법을 제공합니다.

세션(Session) 사용

파이썬의 requests 라이브러리를 사용하여 요청을 보낼 때, 세션(Session) 객체를 사용하면 인증 토큰을 유지할 수 있습니다. 세션은 서버와 클라이언트 간에 상태를 유지하는 역할을 합니다.

import requests

session = requests.Session()
session.headers["Authorization"] = "Bearer {your_token}"

# 인증이 필요한 요청을 보낼 때 세션을 사용
response = session.get("https://api.example.com/endpoint")

위 코드에서 requests.Session()을 통해 세션 객체를 생성하고, session.headers에 헤더에 인증 토큰을 설정합니다. 이제 세션을 사용하여 인증이 필요한 모든 요청을 보낼 수 있습니다.

커스텀 함수를 사용한 토큰 갱신

인증 토큰은 일정 시간이 지나면 만료될 수 있습니다. 이런 경우에는 매 요청마다 토큰을 갱신해야 합니다. 이를 위해 커스텀 함수를 사용하여 토큰 갱신을 자동화할 수 있습니다.

import requests

def renew_token(session):
    # 토큰 갱신 로직 작성
    new_token = get_new_token()
    session.headers["Authorization"] = "Bearer {new_token}"

session = requests.Session()
session.headers["Authorization"] = "Bearer {your_token}"

# 인증이 필요한 요청을 보내기 전에 토큰 갱신
renew_token(session)

# 인증이 필요한 요청을 보낼 때 세션을 사용
response = session.get("https://api.example.com/endpoint")

위 코드에서 renew_token 함수는 토큰을 갱신하는 로직을 작성하는 곳입니다. get_new_token() 함수는 새로운 토큰을 발급받는 과정을 구현해야 합니다. session.headers를 사용하여 헤더에 새로운 토큰을 설정하고, 이제 세션을 사용하여 갱신된 토큰으로 요청을 보낼 수 있습니다.

결론

파이썬의 requests 라이브러리를 사용하여 웹 애플리케이션에서 인증 토큰을 유지하는 방법을 알아보았습니다. 세션을 사용하여 인증 토큰을 설정하고, 커스텀 함수를 사용하여 토큰을 갱신하면 매 요청마다 토큰을 수동으로 입력하는 번거로움을 줄일 수 있습니다. 개발해야 할 시스템에 따라 적절한 방법을 선택하여 토큰 유지 기능을 구현해보세요.


참고 자료: