POST /api/v1/auth/google/token
의도
Google ID Token(RS256 JWT)으로 dartbrief JWT를 발급한다. 첫 로그인이면 자동으로 계정 생성.
인증
없음 (로그인 전 호출)
입력
json
{ "id_token": "<Google ID Token>" }응답
200 OK
json
{ "token": "eyJhbGci..." }400 Bad Request — id_token 누락
401 Unauthorized — Google 토큰 검증 실패
curl 예제
bash
curl -s -X POST https://api.dartbrief.com/api/v1/auth/google/token \
-H "Content-Type: application/json" \
-d '{"id_token":"<Google ID Token>"}' | jq
# 로컬
curl -s -X POST http://localhost:8000/api/v1/auth/google/token \
-H "Content-Type: application/json" \
-d '{"id_token":"<Google ID Token>"}' | jq비즈니스 메모
- Google ID Token은 Flutter
google_sign_in패키지로 발급 - 백엔드가
https://oauth2.googleapis.com/tokeninfo?id_token=<token>에 GET 요청해 Google 서버에 검증 위임 (로컬 RS256 검증 아님, 캐시 없음) - tokeninfo 응답의
aud필드가GOOGLE_ALLOWED_CLIENT_IDS목록 중 하나와 일치해야 함- iOS dev:
532121942538-6lgie0c9fk22occs4q8thc83o70sms5n.apps.googleusercontent.com - iOS prod:
532121942538-8qhhpaue4strhjgte0dpp77scnf0dlle.apps.googleusercontent.com - Android:
532121942538-dqe4fd5dinb73vrgmcvl192vl6bol6us.apps.googleusercontent.com
- iOS dev:
oauth_provider = 'GOOGLE',oauth_id = subclaim 으로 users 테이블 upsert- Android에서 Apple 로그인 버튼 없음 (Google만 지원)