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

POST /ai/oauth/native/facebook

Facebook 네이티브 SDK 의 accessToken 으로 로그인 (+ debug_token app_id 검증)

Facebook 네이티브 로그인

iOS / Android Facebook SDK (FBSDK) 가 발급한 accessToken 을 받아 발급 app_id 를 검증한 뒤 자체 JWT 를 발급합니다.

항목
메서드POST
경로/ai/oauth/native/facebook
인증없음

요청

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

{
  "accessToken": "<Facebook accessToken>",
  "device": "APP"
}
필드타입필수설명
accessTokenstringFacebook SDK 가 발급한 accessToken
devicestring항상 "APP"

검증 동작

다른 provider 와 달리 Facebook 은 app_id 검증 단계가 추가됩니다 — mobile app_id 가 web 과 다를 수 있고, 다른 앱이 발급한 token 도용을 방지하기 위함.

  1. debug_token 호출: https://graph.facebook.com/debug_token?input_token={accessToken}&access_token={clientId}|{clientSecret} 로 token 메타 조회
  2. app_id 일치 확인: 반환된 data.app_id 가 백엔드의 FACEBOOK_MOBILE_APP_ID (또는 yml fallback 으로 web client_id) 와 일치하는지 확인. 불일치 시 APP_ID_MISMATCH 로 거부
  3. user info 조회: https://graph.facebook.com/me?fields=id,name,email&access_token=... 로 사용자 정보 추출
  4. 회원가입 또는 로그인 처리

사전 준비: Meta for Developers → 앱 설정 → iOS Bundle ID / Android 키해시 등록. mobile 전용 앱을 별도 생성해 보안을 강화하려면 환경변수 FACEBOOK_MOBILE_APP_ID 를 설정. 미설정 시 web sns.facebook.client.id 로 fallback (web/mobile 같은 app 사용 — 보안 약간 약함).

응답

성공 (200 OK)

{
  "memberId": "10215000000000000",
  "accessToken": "eyJhbGciOiJIUzI1NiJ9...",
  "refreshToken": "eyJhbGciOiJIUzI1NiJ9...",
  "isFirstLogin": false
}
필드타입설명
memberIdstringFacebook user ID
accessTokenstringGlowb JWT access token
refreshTokenstringGlowb JWT refresh token ({memberId}:app 키 저장)
isFirstLoginboolean신규 회원가입 여부

에러

HTTPcode발생 조건
400OAUTH_001accessToken 누락
400OAUTH_002device 누락 또는 WEB
401OAUTH_007Facebook API 가 accessToken 거부
401OAUTH_008debug_token 의 app_id 가 mobile app_id 와 불일치 (다른 앱이 발급한 token 도용)
500OAUTH_009Facebook API 응답 파싱 실패 또는 일시 장애

API 테스트

On this page