OAuth 클라이언트 ID의 과거와 현재: Python 인증 라이브러리의 변화

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

- Python 개발자 (Google API 인증 구현이 필요한 경우)

- 난이도: 중간 (OAuth 인증 이해 필수)

핵심 요약

  • oauth2client 라이브러리는 2017년에 deprecated 되었으며, google-authgoogle_auth_oauthlib가 대체됨.
  • 새로운 라이브러리는 OAuth2 토큰 저장 기능을 제거하여 개발자가 직접 구현해야 함.
  • 구글 공식 문서는 과거/현재 라이브러리 비교 예제를 제공하지 않음.

섹션별 세부 요약

1. 소개

  • 구글 API 인증 라이브러리의 두 가지 버전(old: oauth2client, new: google-auth)의 존재로 인한 혼란.
  • 주요 영향을 받는 API: Workspace/GWS, YouTube, 일부 GCP API.
  • 개발자와 LLM(대규모 언어 모델)의 혼란을 줄이기 위한 포스팅 목적.

2. 설치 방법

  • 구형 라이브러리 설치:
  • pip install -U pip google-api-python-client oauth2client
  • uv pip install -U google-api-python-client oauth2client
  • 신형 라이브러리 설치:
  • pip install -U pip google-api-python-client google-auth-httplib2 google-auth-oauthlib
  • uv pip install -U google-api-python-client google-auth-httplib2 google-auth-oauthlib

3. 코드 비교 (구형 vs 신형)

  • 구형 라이브러리:
  • oauth2client.file.Storage 사용, 자동 토큰 저장 지원.
  • 예시: store = file.Storage('storage.json').
  • 신형 라이브러리:
  • google.authgoogle.oauth2 사용, 토큰 저장 수동 구현.
  • 예시: creds = credentials.Credentials.from_authorized_user_file(TOKENS).

4. 토큰 저장 기능

  • 구형 라이브러리:
  • 내장 토큰 저장 지원 (자동으로 storage.json 파일에 저장).
  • 신형 라이브러리:
  • 개발자가 직접 refresh_token을 사용해 토큰 갱신 구현 필요.
  • 불리점: 토큰 만료 시 사용자에게 반복적인 권한 요청 발생.

5. 권장 사항

  • 구형 라이브러리 사용 시:
  • oauth2client의 유지보수 모드에서 작동하나, 2024년 이후 지원 중단 예정.
  • 신형 라이브러리 사용 시:
  • google-authgoogle_auth_oauthlib를 사용하고, 토큰 저장 로직을 반드시 구현.

결론

  • 구형 라이브러리(oauth2client)는 2024년 이후 지원 중단 예정이므로, 신형 라이브러리(google-auth)로 마이그레이션을 권장.
  • 토큰 저장 기능은 신형 라이브러리에서 수동 구현해야 하므로, 코드에서 refresh_token을 사용한 토큰 갱신 로직을 반드시 포함해야 함.