AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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

카테고리

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

서브카테고리

개발 툴

대상자

Google API를 사용하는 개발자, 특히 OAuth 인증 및 라이브러리 마이그레이션에 관심 있는 Python 개발자

핵심 요약

  • 구글은 oauth2client 라이브러리를 2017년에 공식적으로 deprecated하고 google-authgoogle_auth_oauthlib를 권장하며, 이전 라이브러리의 예제가 여전히 온라인에 남아 있어 혼란을 유발
  • 새로운 라이브러리는 OAuth2 토큰 저장 기능을 지원하지 않아 개발자가 직접 구현해야 하며, 이는 추가 코드량과 복잡성을 초래
  • Workspace/GWS API, YouTube, 일부 GCP API는 클라이언트 라이브러리가 없어 인증 구현에 더 많은 주의가 필요

섹션별 세부 요약

1. 인증 라이브러리의 역사와 현재 상태

  • 구글은 oauth2client를 2017년에 deprecated하고 google-authgoogle_auth_oauthlib를 새롭게 도입했으나, 마이그레이션 가이드나 공식 문서에 예제 비교가 제공되지 않음
  • oauth2client는 유지보수 모드에서 작동하며, 자동화된 토큰 저장 기능을 제공하지만, 새로운 라이브러리는 이 기능을 지원하지 않음
  • 주요 영향을 받는 API: Workspace/GWS(드라이브, 시트, 이메일 등), YouTube, 일부 GCP API

2. 설치 및 사용 방법

  • pip 또는 uv를 사용해 google-api-python-client, oauth2client, google-auth-httplib2, google-auth-oauthlib 설치
  • 예시 명령어: pip install -U pip google-api-python-client oauth2client 또는 uv pip install -U google-api-python-client oauth2client
  • 설치 확인: python -c "import googleapiclient, httplib2, oauth2client" 또는 python -c "import googleapiclient, google.auth, google.oauth2, google_auth_oauthlib"

3. 코드 예제 및 차이점

  • 구식 라이브러리 예제:

```python

from oauth2client import file, client, tools

store = file.Storage('storage.json')

creds = store.get()

```

  • 최신 라이브러리 예제:

```python

from google.auth.transport.requests import Request

from google.oauth2 import credentials

from google_auth_oauthlib.flow import InstalledAppFlow

```

  • 주요 차이점:

- 구식 라이브러리: 내장 토큰 저장 기능 지원

- 최신 라이브러리: 개발자가 직접 토큰 저장 구현 필요

4. 토큰 저장 기능의 영향

  • 구식 라이브러리: 자동화된 토큰 저장으로 사용자가 매번 인증 요청을 받지 않음
  • 최신 라이브러리: 개발자가 refresh_token을 직접 관리해야 하며, 이는 UX 저하 가능
  • 권장 사항: 토큰 저장 기능 구현으로 사용자 경험 개선

결론

  • 구글의 새로운 인증 라이브러리(google-auth)는 토큰 저장 기능을 지원하지 않으므로, 개발자는 반드시 이 부분을 직접 구현해야 하며, 이는 추가 코드량과 복잡성을 초래함.
  • 마이그레이션 시 oauth2clientgoogle-auth의 차이점에 주의하고, 토큰 저장 로직을 명확히 구현하여 사용자 경험을 유지해야 함.