OAuth API소셜 로그인 API
GET /ai/oauth/{socialLoginType}/callback
소셜 로그인 콜백
소셜 로그인 콜백
소셜 로그인 인증 완료 후 콜백입니다. 인증 코드를 받아 토큰을 교환하고 JWT를 발급합니다.
소셜 플랫폼은 프론트엔드 콜백 페이지로 돌려보냅니다. 이 API 는 그 페이지가 호출합니다.
HTTP 요청
GET /ai/oauth/{socialLoginType}/callback?code={code}&state={state}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
socialLoginType | SocialLoginType | 예 | 소셜 로그인 플랫폼 타입 |
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
code | string | 예 | 소셜 플랫폼에서 발급한 인가 코드 |
state | string | LINE 만 | LINE 로그인 시작 시 발급한 일회성 난수 |
state 는 한 번만 쓸 수 있고 발급 후 5분이 지나면 만료됩니다.
LINE 외 provider 는 이 파라미터를 보내지 않습니다.
응답
성공 응답 (200 OK)
{
"memberId": "U4af4980629abcdef0123456789abcdef",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isFirstLogin": true
}Response 스키마 (TokenDto)
| 필드명 | 타입 | 설명 |
|---|---|---|
memberId | string | 회원 PK. 소셜 플랫폼이 준 유저 ID 원문 |
accessToken | string | JWT Access Token |
refreshToken | string | JWT Refresh Token |
isFirstLogin | boolean | 이번 요청으로 신규 가입되었으면 true |
에러 응답
아래 LINE 인가 오류는 HTTP 200 본문에 담깁니다. 탈퇴 계정 오류는 HTTP 401을 반환합니다.
{
"status": 400,
"code": "SOCIAL_LOGIN_STATE_INVALID",
"message": "로그인 요청이 만료되었거나 올바르지 않습니다. 처음부터 다시 로그인해주세요.",
"data": null
}code | 원인 |
|---|---|
SOCIAL_LOGIN_STATE_REQUIRED | state 누락 (LINE) |
SOCIAL_LOGIN_STATE_INVALID | state 위조, 만료, 또는 재사용 (LINE) |
SOCIAL_LOGIN_UPSTREAM_FAILED | code 가 유효하지 않거나 LINE 토큰·프로필 API 오류(args.provider=LINE, 502) |
탈퇴 계정 오류
Google·Kakao·Facebook·Naver·LINE에서 확인한 기존 회원이 탈퇴 상태이면 가입·로그인과 JWT 발급을 차단합니다. HTTP 401, code: ACCOUNT_WITHDRAWN을 반환합니다. 응답 형식과 클라이언트 처리를 참고하세요.