← 홈으로 돌아가기

OTP 이메일 · 회원 탈퇴/취소 API 가이드

백엔드 운영·프론트 연동 시 참고용 문서입니다. OpenAPI 스펙은 /api/v1/docs (Swagger UI)에서 동일 내용이 엔드포인트 설명으로 노출됩니다.


1. 이메일 OTP 발송 — POST /api/v1/accounts/otp/send

항목 내용
인증 없음 (auth=None)
용도 회원가입 전 이메일 소유 확인

동작 요약

  1. 이미 활성(is_active=True)인 동일 이메일이 있으면 400 + DUPLICATE_EMAIL.
  2. 비활성 임시 사용자가 없으면 is_active=False 임시 계정을 만들고 랜덤 닉네임을 부여합니다.
  3. DB에 OTP 레코드를 생성한 뒤 메일을 보냅니다.
  4. Celery(큐) 로 먼저 발송을 예약하고, Redis 브로커에 약 5초 안에 응답이 없으면 동기 SMTP 스레드로 폴백합니다.
  5. 그래서 HTTP 응답이 수 초 걸릴 수 있습니다(정상).

제한

응답 예시 (200)

{
  "detail": "OTP가 발송되었습니다.",
  "expires_at": "2026-04-14T16:47:24.825000+09:00"
}

연관 API


2. 이메일 OTP 검증 — POST /api/v1/accounts/otp/verify

항목 내용
인증 없음

3. 탈퇴 신청 — POST /api/v1/accounts/withdraw

항목 내용
인증 JWT 필수 (Authorization: Bearer …)

비밀번호 필드

구독·슬롯

계정 상태


4. 탈퇴 취소 — POST /api/v1/accounts/withdraw/cancel

항목 내용
인증 없음 (auth=None) — Authorization 없이 호출하는 것을 권장

요청 본문 (JSON)

필드 필수 설명
email 강력 권장 탈퇴한 계정 이메일
password 필수 계정 비밀번호

유예 기간(pending_delete_at 이전)에만 성공합니다.

성공 시

권장 클라이언트 플로우

  1. 탈퇴 신청 후 토큰이 무효화되면 POST /accounts/withdraw/cancelemail + password만 전송.
  2. 성공 후 POST /accounts/login으로 새 토큰 발급.

5. 로그인과 탈퇴 유예


6. 운영 메모 (Celery / Redis)


관련 링크