OAuth API모바일 네이티브 로그인 API
POST /ai/oauth/native/naver
Naver 네이티브 SDK 의 accessToken 으로 로그인
Naver 네이티브 로그인
iOS / Android Naver Login SDK 가 발급한 accessToken 을 받아 Naver API 로 사용자 정보를 조회하고 자체 JWT 를 발급합니다.
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /ai/oauth/native/naver |
| 인증 | 없음 |
요청
POST /ai/oauth/native/naver
Content-Type: application/json
{
"accessToken": "<Naver accessToken>",
"device": "APP"
}| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
accessToken | string | 예 | Naver SDK 가 발급한 accessToken |
device | string | 예 | 항상 "APP" |
검증 동작
백엔드는 받은 accessToken 으로 다음을 호출:
https://openapi.naver.com/v1/nid/me— 사용자 기본 정보 (id, email, name)https://openapi.naver.com/v1/nid/payaddress— NaverPay 배송지 (선택 동의 시)- 신규 회원이면 배송지 자동 등록 (
Influence+DeliveryAddress) - 기존 회원은 배송지 없을 때만 채워줌
- 신규 회원이면 배송지 자동 등록 (
Naver API 가 401/4xx 응답을 주면 INVALID_ACCESS_TOKEN 으로 거부.
사전 준비: 네이버 디벨로퍼스 → API 설정 → iOS URL Scheme + Android 패키지명 등록. 백엔드 yml 변경은 불필요 — 기존 client_id 가 web/native 공용.
응답
성공 (200 OK)
{
"memberId": "abcdef-12345-naver-id",
"accessToken": "eyJhbGciOiJIUzI1NiJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiJ9...",
"isFirstLogin": true
}| 필드 | 타입 | 설명 |
|---|---|---|
memberId | string | Naver response 의 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 | Naver API 가 accessToken 거부 |
| 500 | OAUTH_009 | Naver API 응답 파싱 실패 또는 일시 장애 |