SDK 방식

플랫폼 Provider 방식
WEB
Kakao Naver Apple
REST API
APP
Apple
REST API
Kakao Naver
Native SDK

변경 사항

항목 내용
SDK 전환 카카오 / 네이버는 네이티브 SDK로 전환. 애플은 기존 REST API 방식 유지.
verify-token API 네이티브 SDK로 소셜 로그인 후 발급받은 accessToken을 서버로 전달. 서버는 해당 토큰으로 소셜 Provider에서 CI, socialId를 조회하고 SocialLoginResult에 저장 후 uuid 반환
소셜 Provider 통신 네이티브 SDK가 직접 처리. 백엔드는 accessToken으로 사용자 정보만 조회.
연동 해제 네이티브에서 소셜 Provider 연동 해제 처리. 백엔드는 DB 싱크만 수행 (uuid 불필요).
소셜 로그인 Sign-in
sequenceDiagram participant F as 프론트 participant B as 앱 브리지 participant N as 네이티브 participant S as 소셜 Provider participant ND as Node 서버 participant BE as 백엔드 F->>B: 소셜 로그인 요청 (provider) B->>N: 소셜 로그인 요청 N->>S: SDK 로그인 S-->>N: accessToken N->>ND: accessToken, provider 전달 ND->>BE: POST /v2/oauth2/verify-token {provider, accessToken} BE->>S: 사용자 정보 조회 (accessToken) S-->>BE: socialId, CI BE->>BE: SocialLoginResult 저장 (uuid 발급) Note over BE: nextAction 결정 (CI + socialId 기반)
회원 없음 → SIGN_UP
회원 있음 + 소셜 계정 없음 → LINK_SOCIAL_ACCOUNT
회원 있음 + socialId 일치 → SIGN_IN
회원 있음 + socialId 불일치 → ALREADY_LINKED_SOCIAL_ACCOUNT BE-->>ND: {uuid, nextAction} ND-->>F: {uuid, nextAction} alt nextAction = SIGN_IN F->>ND: 로그인 요청 (uuid) ND->>BE: POST /v2/oauth2/sign-in {uuid} BE-->>ND: accessToken, refreshToken Note over ND: 토큰 저장 및 세션 생성 ND-->>F: 세션 정보 (header: accessToken) else nextAction = SIGN_UP F->>F: 회원가입 플로우 진행 else nextAction = LINK_SOCIAL_ACCOUNT F->>BE: POST /v2/oauth2/link-social-account {uuid} BE-->>F: provider, linkedDtm end
소셜 계정 연동 Link
sequenceDiagram participant F as 프론트 participant B as 앱 브리지 participant N as 네이티브 participant S as 소셜 Provider participant ND as Node 서버 participant BE as 백엔드 F->>B: 소셜 연동 요청 (provider) B->>N: 소셜 로그인 요청 N->>S: SDK 로그인 S-->>N: accessToken N->>ND: accessToken, provider 전달 ND->>BE: POST /v2/oauth2/verify-token {provider, accessToken} BE->>S: 사용자 정보 조회 (accessToken) S-->>BE: socialId, CI BE->>BE: SocialLoginResult 저장 (uuid 발급) Note over BE: nextAction 결정 (CI + socialId 기반)
회원 없음 → SIGN_UP
회원 있음 + 소셜 계정 없음 → LINK_SOCIAL_ACCOUNT
회원 있음 + socialId 일치 → SIGN_IN
회원 있음 + socialId 불일치 → ALREADY_LINKED_SOCIAL_ACCOUNT BE-->>ND: {uuid, nextAction} ND-->>F: {uuid, nextAction} F->>BE: POST /v2/oauth2/link-social-account {uuid} BE-->>F: provider, linkedDtm
소셜 계정 연동 해제 Unlink
sequenceDiagram participant F as 프론트 participant B as 앱 브리지 participant N as 네이티브 participant S as 소셜 Provider participant ND as Node 서버 participant BE as 백엔드 F->>B: 소셜 연동 해제 요청 (provider, socialId, socialSeq) B->>N: 소셜 연동 해제 요청 (socialId, socialSeq) Note over N: SDK로 현재 로그인된 계정과 socialId 일치 여부 체크 N->>S: SDK 연동 해제 S-->>N: 연동 해제 성공 N->>ND: 연동 해제 결과 전달 ND-->>F: 연동 해제 결과 전달 F->>BE: DELETE /v2/oauth2/link-social-account/{socialSeq} Note over BE: uuid 없음 - 네이티브가 이미 처리, DB에서만 제거 BE-->>F: 연동 해제 완료