OAuth API모바일 네이티브 로그인 API
POST /ai/oauth/native/kakao
Kakao 네이티브 SDK 의 accessToken 으로 로그인
Kakao 네이티브 로그인
iOS / Android Kakao SDK 가 발급한 accessToken 을 받아 Kakao API 로 사용자 정보를 조회하고 자체 JWT 를 발급합니다.
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /ai/oauth/native/kakao |
| 인증 | 없음 |
요청
POST /ai/oauth/native/kakao
Content-Type: application/json
{
"accessToken": "<Kakao accessToken>",
"device": "APP"
}요청 바디
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
accessToken | string | 예 | Kakao SDK 가 발급한 accessToken |
device | string | 예 | 항상 "APP" |
검증 동작
백엔드는 받은 accessToken 으로 https://kapi.kakao.com/v2/user/me 를 호출하여 사용자 정보를 조회합니다.
응답에서 다음을 추출:
id(Kakao user ID → Member ID 로 사용)kakao_account.emailkakao_account.profile.nickname
Kakao API 가 401/4xx 응답을 주면 INVALID_ACCESS_TOKEN 으로 거부.
사전 준비: 카카오 디벨로퍼스 → 플랫폼 → iOS Bundle ID / Android 패키지 + 키해시 등록.
백엔드 yml 변경은 불필요 — 기존 REST API 키 (sns.kakao.client.id) 가 web/native 공용으로 사용됩니다.
응답
성공 (200 OK)
{
"memberId": "3987654321",
"accessToken": "eyJhbGciOiJIUzI1NiJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiJ9...",
"isFirstLogin": false
}| 필드 | 타입 | 설명 |
|---|---|---|
memberId | string | Kakao user ID |
accessToken | string | Glowb JWT access token |
refreshToken | string | Glowb JWT refresh token ({memberId}:app 키 저장) |
isFirstLogin | boolean | 신규 회원가입 여부 |
에러
| HTTP | code | 발생 조건 |
|---|---|---|
| 400 | OAUTH_001 | accessToken 누락 |
| 400 | OAUTH_002 | device 누락 또는 WEB |
| 401 | OAUTH_007 | Kakao API 가 accessToken 거부 (만료/위조 등) |
| 500 | OAUTH_009 | Kakao API 응답 파싱 실패 또는 일시 장애 |