OAuth 클라이언트 ID의 과거와 현재: Python 인증 라이브러리의 변화
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python 개발자 (Google API 인증 구현이 필요한 경우)
- 난이도: 중간 (OAuth 인증 이해 필수)
핵심 요약
- oauth2client 라이브러리는 2017년에 deprecated 되었으며, google-auth 및 google_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.auth
및google.oauth2
사용, 토큰 저장 수동 구현.- 예시:
creds = credentials.Credentials.from_authorized_user_file(TOKENS)
.
4. 토큰 저장 기능
- 구형 라이브러리:
- 내장 토큰 저장 지원 (자동으로
storage.json
파일에 저장). - 신형 라이브러리:
- 개발자가 직접
refresh_token
을 사용해 토큰 갱신 구현 필요. - 불리점: 토큰 만료 시 사용자에게 반복적인 권한 요청 발생.
5. 권장 사항
- 구형 라이브러리 사용 시:
oauth2client
의 유지보수 모드에서 작동하나, 2024년 이후 지원 중단 예정.- 신형 라이브러리 사용 시:
google-auth
및google_auth_oauthlib
를 사용하고, 토큰 저장 로직을 반드시 구현.
결론
- 구형 라이브러리(
oauth2client
)는 2024년 이후 지원 중단 예정이므로, 신형 라이브러리(google-auth
)로 마이그레이션을 권장. - 토큰 저장 기능은 신형 라이브러리에서 수동 구현해야 하므로, 코드에서
refresh_token
을 사용한 토큰 갱신 로직을 반드시 포함해야 함.