본문으로 건너뛰기

기기 등록 및 접속 정책

1. 목적

사용자 계정의 불법 공유를 방지하면서도, 정당한 다기기 이용(예: 부모-자녀 간 사용)을 허용하기 위해, 기기 등록 및 접속 정책을 정의합니다.


2. 기기 등록 원칙

  • 하나의 계정당 최대 2대의 기기에서 콘텐츠 이용 가능 (MAX_ACTIVE_DEVICES=2)
  • 등록된 기기 수가 2대 이하인 경우, 로그인 시 자동으로 해당 기기를 등록함
  • 동일 기기라도 앱 삭제/재설치, 브라우저 변경 등의 경우 새 기기로 인식될 수 있음

3. 기기 등록 정보

기기 등록 시 다음 정보가 UserDevice 모델에 저장됩니다:

필드설명예시
device_id기기 고유 식별자 (유니크)UUID 또는 플랫폼 제공 ID
device_type운영체제 유형ios, android
device_model기기 모델명iPhone 15 Pro, Galaxy S24
app_version앱 버전1.2.3
timezone기기 타임존Asia/Seoul
fcm_tokenFirebase Cloud Messaging 토큰푸시 알림 발송용
push_enabled푸시 알림 허용 여부true / false
is_active기기 활성 상태true / false
last_active마지막 활동 일시자동 갱신 (auto_now)
created_at기기 등록 일시자동 생성

4. API 엔드포인트

HTTP엔드포인트설명
POST/api/users/devices/register/기기 등록 (로그인 시 자동 호출)
GET/api/users/devices/내 등록 기기 목록 조회

5. 기기 초과 시 처리 방식

  • 3번째 기기에서 로그인 시, 다음과 같은 팝업이 자동 노출됨:

등록 가능한 기기 수를 초과했어요. 아래에서 한 대를 로그아웃하고 이 기기에서 계속 이용해 주세요.

  • 팝업에는 현재 등록된 2대의 기기 정보가 간단히 표시됨 (기기명 + 마지막 사용일 기준 / 최대 15자 표기)
예시:
iPhone 14 – 오늘 사용
Galaxy S24 – 2일 전 사용

6. 다른 기기 로그인 시 자동 로그아웃

  • 새 기기에서 로그인이 이루어지면, 초과되는 기존 기기의 is_activeFalse로 변경됩니다.
  • 비활성화된 기기에서 API 요청 시 JWT 인증 과정에서 logged_in_elsewhere 에러가 반환됩니다.
  • 클라이언트는 이 에러를 감지하여 자동 로그아웃 처리 및 "다른 기기에서 로그인되었습니다" 안내를 표시합니다.

7. 기기 관리 규칙

  • 사용자는 직접 기기를 해제할 수 있음 (마이페이지 > 기기 관리)
  • 기기 해제 시 해당 기기에서 자동 로그아웃됨
  • 같은 기기에서 앱을 삭제 후 재설치하면 새로운 device_id가 발급되어 별도 기기로 인식됨