본문으로 건너뛰기
버전: 개발 버전 (최신)

계정 비활성화 API

계정 비활성화 API는 현재 로그인한 사용자의 계정을 비활성화(Soft Delete)합니다. 일반 사용자와 게스트 사용자 모두 이 API를 통해 자발적으로 탈퇴할 수 있습니다.

공통 요청 헤더

모든 dha-sleep API 요청은 공통 요청 헤더를 준수해야 합니다. User-Agent, Accept-Language, 인증 헤더 요구사항을 먼저 확인하세요.

계정 비활성화

현재 로그인한 사용자의 계정을 비활성화합니다. 게스트 계정의 경우 만료 타이머도 함께 해제됩니다.

  • HTTP Method: DELETE
  • Path: /v1/auth/me (API_PREFIX 기본값이 v1이며 환경에 따라 변경 가능)
  • 인증: accessToken 필요 (Authorization: Bearer {accessToken})

Headers

HeaderTypeDescriptionRequired
Authorizationstring액세스 토큰 (Bearer {accessToken})Yes
Content-Typeapplication/json요청 본문 형식을 지정합니다.No

Request Body

요청 본문은 선택 사항입니다. 탈퇴 사유를 기록하고 싶은 경우에만 전송합니다.

{
"reason": "더 이상 서비스를 이용하지 않습니다."
}
필드타입설명필수
reasonstring탈퇴 사유 (선택)No

Responses

HTTP Status Code설명Error Code(s)
200 OK계정 비활성화 성공-
400 Bad Request이미 비활성화된 계정2009
401 Unauthorized인증 실패 (유효하지 않은 토큰)2051
404 Not Found사용자를 찾을 수 없음7002
500 Internal Server Error서버 내부 오류2000
200 OK - 계정 비활성화 성공
{
"message": "계정이 성공적으로 비활성화되었습니다.",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"status": "INACTIVE",
"deletedAt": 1702819200000
}
필드타입설명필수
messagestring처리 결과 메시지Yes
userIdstring비활성화된 사용자 IDYes
statusstring계정 상태 (INACTIVE)Yes
deletedAtnumber비활성화 시각 (Unix timestamp in milliseconds, Kotlin: Long, Swift: Int64)Yes
400 Bad Request - 이미 비활성화된 계정
{
"code": 2009,
"message": "ACCOUNT_INACTIVE",
"detail": "이미 비활성화된 사용자입니다."
}

이 오류는 이미 비활성화된 계정에 대해 다시 비활성화를 시도할 때 발생합니다.

401 Unauthorized - 인증 실패
{
"code": 2051,
"message": "INVALID_TOKEN",
"detail": "유효한 사용자 인증 정보가 없습니다."
}

이 오류는 액세스 토큰이 유효하지 않거나 만료된 경우 발생합니다.

404 Not Found - 사용자를 찾을 수 없음
{
"code": 7002,
"message": "USER_NOT_FOUND",
"detail": "사용자를 찾을 수 없습니다."
}

이 오류는 토큰에 해당하는 사용자를 데이터베이스에서 찾을 수 없을 때 발생합니다.

500 Internal Server Error - 서버 내부 오류
{
"code": 2000,
"message": "SERVER_ERROR",
"detail": "서버 내부 오류"
}

설명

비활성화 동작

계정 비활성화는 다음과 같이 처리됩니다:

  1. 일반 사용자: 사용자 상태가 INACTIVE로 변경됩니다 (Soft Delete).
  2. 게스트 사용자 (v1.2.0): User 레코드가 있는 경우 일반 사용자와 동일하게 처리됩니다.
  3. 레거시 게스트 (v1.1.x): GuestAccountLifecycleVOLUNTARILY_WITHDRAWN 이벤트가 기록됩니다.

주의사항

  • 비활성화된 계정의 데이터는 즉시 삭제되지 않습니다 (Soft Delete).
  • 비활성화 후에는 해당 토큰으로 더 이상 인증할 수 없습니다.
  • 게스트 계정의 경우 동일 디바이스로 새로운 게스트 등록이 필요합니다.
  • 정식 회원의 경우 동일 이메일로 재가입이 가능합니다 (정책에 따라 다를 수 있음).

클라이언트 구현 가이드

// 탈퇴 후 처리 예시
async function handleWithdraw() {
try {
await withdrawUser({ reason: '서비스 이용 종료' });
// 로컬 스토리지 토큰 삭제
localStorage.removeItem('auth.accessToken');
localStorage.removeItem('auth.refreshToken');
// 온보딩 화면으로 이동
router.push('/onboarding');
} catch (error) {
// 에러 처리
}
}

오류 코드 참조

코드메시지설명
2000SERVER_ERROR서버 내부 오류
2009ACCOUNT_INACTIVE이미 비활성화된 계정
2051INVALID_TOKEN액세스 토큰이 유효하지 않음
7002USER_NOT_FOUND사용자를 찾을 수 없음