C.W.K.
Stream
Lesson 01 of 04 · published

두 인증 path

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

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

한 모델 family, 두 front door

AI Studio vs Vertex split (developer-vs-enterprise 선택) 너머에, Google 이 ship 하는 세 번째 path: Cloud Code Assist. Gemini CLI, IDE 확장, (여기서 관련) cwkPippa 의 free OAuth fallback 이 사용하는 OAuth 기반 endpoint.

두 path 나란히

AspectAPI Key (developer)OAuth (Cloud Code Assist)
Endpointgenerativelanguage.googleapis.comcloudcode-pa.googleapis.com
Auth headerx-goog-api-key: KEYAuthorization: Bearer TOKEN
비용유료 (또는 AI Studio free tier)개인 Gmail 무료
Rate limit5–15 RPM (free tier)~60 RPM
Pre-flight없음loadCodeAssist 먼저 호출
Token refreshN/A — key 만료 X표준 OAuth refresh

OAuth path 왜 신경 써야

OAuth path 가 "진짜 rate limit 의 free tier" power. 개인 Google account 있으면 billing setup 없이 hit 가능. Trade-off: internal API, 모양이 적은 알림으로 변할 수 있고, 일일 quota. Primary production 아니라 fallback 으로 사용.

Credential 파일

OAuth credential 이 ~/.gemini/oauth_creds.json 에 살아 (Gemini CLI 가 거기 둠). 포맷은 표준 Google OAuth refresh-token JSON.

Code

Path A — API Key·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"}]}]
}
Path 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 존재 확인. 그 다음 파일 읽고 token refresh (다음 lesson) 에 필요한 field 식별. CLI 가 사용하는 request 모양 비교 (mitmproxy 로 intercept 가능) — API key path 와.

Progress

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

댓글 0

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

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