Glowb Dev Docs
OAuth API모바일 네이티브 로그인 API

POST /ai/oauth/native/google

Google 네이티브 SDK 의 idToken 을 검증하고 JWT 발급

Google 네이티브 로그인

iOS / Android Google Sign-In SDK 가 발급한 idToken 을 백엔드에서 검증한 뒤 자체 JWT 를 발급합니다.

항목
메서드POST
경로/ai/oauth/native/google
인증없음 (token 자체가 인증)

요청

POST /ai/oauth/native/google
Content-Type: application/json

{
  "idToken": "<Google idToken>",
  "device": "APP"
}

요청 바디

필드타입필수설명
idTokenstringGoogleSignIn-iOS / Android SDK 의 idToken (JWT 형식)
devicestring항상 "APP"

검증 동작

백엔드는 Google JWKS (https://www.googleapis.com/oauth2/v3/certs) 로 idToken 의 다음 항목을 검증합니다:

  • 서명 — Google 비밀키로 서명되었는지
  • aud (audience) — 발급된 client_id 가 등록된 iOS / Android / Web client_id 중 하나와 일치하는지
  • iss (issuer)https://accounts.google.com 또는 accounts.google.com 인지
  • exp (expiry) — 만료되지 않았는지

검증 통과 시 payload 에서 sub, email, name 을 추출하여 회원가입 또는 로그인 처리.

사전 준비 필요: Google Cloud Console 에서 iOS 와 Android 각각 OAuth Client ID 를 발급받고 백엔드 환경변수 GOOGLE_IOS_CLIENT_ID, GOOGLE_ANDROID_CLIENT_ID (또는 yml sns.google.mobile.*.client.id) 에 등록해야 합니다. 미발급/미설정 시 모든 idToken 이 AUDIENCE_MISMATCH 로 거부됩니다.

응답

성공 (200 OK)

{
  "memberId": "108123456789012345678",
  "accessToken": "eyJhbGciOiJIUzI1NiJ9...",
  "refreshToken": "eyJhbGciOiJIUzI1NiJ9...",
  "isFirstLogin": false
}

Response 스키마 (TokenDto)

필드타입설명
memberIdstringGoogle 의 sub 값 (Member ID)
accessTokenstringGlowb JWT access token
refreshTokenstringGlowb JWT refresh token (Redis 의 {memberId}:app 키 저장)
isFirstLoginboolean신규 회원가입 여부

에러 응답

{
  "status": 401,
  "code": "OAUTH_003",
  "message": "ID token 검증에 실패했습니다.",
  "data": null
}
HTTPcode발생 조건
400OAUTH_001idToken 누락 또는 빈 문자열
400OAUTH_002device 누락 또는 WEB
401OAUTH_003JWT 서명 실패 / aud 불일치 / iss 불일치 / exp 만료 (모두 같은 코드)

API 테스트

On this page