본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

두 가지 인증 경로

~12 min · oauth, api-key, code-assist, endpoints

Level 0불씨
0 XP0/35 lessons0/10 achievements
0/140 XP to next level140 XP to go0% complete

한 모델 계열로 들어가는 두 가지 문

개발자용 AI Studio와 기업용 Vertex라는 선택지 너머에 Google이 제공하는 세 번째 경로가 있어. Cloud Code Assist야. Gemini CLI와 IDE 확장, 그리고 여기서 다룰 cwkPippa의 무료 OAuth 폴백이 사용하는 OAuth 기반 엔드포인트지.

두 경로 나란히 보기

항목API 키(개발자)OAuth(Cloud Code Assist)
엔드포인트generativelanguage.googleapis.comcloudcode-pa.googleapis.com
인증 헤더x-goog-api-key: KEYAuthorization: Bearer TOKEN
비용유료 또는 AI Studio 무료 등급개인 Gmail 계정은 무료
호출 한도5–15 RPM(무료 등급)약 60 RPM
사전 호출없음loadCodeAssist 먼저 호출
토큰 갱신해당 없음 — 키는 만료되지 않음표준 OAuth 갱신

OAuth 경로가 중요한 이유

OAuth 경로는 실제 호출 한도가 있는 무료 등급을 제공해. 개인 Google 계정만 있으면 결제 설정 없이 호출할 수 있어. 대신 내부 API라서 적은 예고만으로 구조가 바뀔 수 있고 일일 할당량도 있어. 주 운영 경로가 아니라 폴백으로 써.

자격 증명 파일

OAuth 자격 증명은 Gemini CLI가 만드는 ~/.gemini/oauth_creds.json에 있어. 형식은 표준 Google OAuth 갱신 토큰 JSON이야.

Code

경로 A — API 키·text
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
Header: x-goog-api-key: $GEMINI_API_KEY
Header: Content-Type: application/json

Body:
{
  "contents": [{"parts": [{"text": "Hello"}]}]
}
경로 B — OAuth(Cloud Code Assist)·text
POST https://cloudcode-pa.googleapis.com/v1internal:generateContent
Header: Authorization: Bearer $ACCESS_TOKEN
Header: Content-Type: application/json

Body (note the wrapper):
{
  "model": "gemini-2.5-flash",
  "project": "projects/.../locations/global/...",   ← from loadCodeAssist
  "request": {
    "contents": [{"role": "user", "parts": [{"text": "Hello"}]}],
    "generationConfig": {}
  }
}
Credential 파일 모양·json
// ~/.gemini/oauth_creds.json
{
  "access_token": "ya29.a0...",
  "refresh_token": "1//06...",
  "token_type": "Bearer",
  "expiry_date": 1756789012345
}

External links

Exercise

Gemini CLI를 설치하고(npm i -g @google/gemini-cli) gemini login을 실행한 뒤 ~/.gemini/oauth_creds.json이 생겼는지 확인해. 파일을 읽어 다음 레슨의 토큰 갱신에 필요한 필드를 찾아. CLI가 쓰는 요청 구조를 API 키 경로와 비교해. 필요하면 mitmproxy로 가로채 볼 수 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.