-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
✨ 구현 할 기능
이메일 인증을 통한 멀티 디바이스 등록 및 관리 시스템 구축
- 동일한 이메일(계정)로 노트북, 데스크탑 등 여러 기기에서 로그인할 수 있는 환경 제공
- 신규 디바이스 등록 시 이메일 발송 및 링크 클릭을 통한
is_active활성화 처리 - 현재 로그인된(인증된) 기기에서 본인의 다른 등록 기기 목록 조회 및 특정 기기 삭제(로그아웃/등록 해제) 기능
📢 구현 방식
본 기능은 1명의 유저가 N개의 디바이스를 가질 수 있는 구조로 구현합니다.
- 디바이스 등록 및 인증 요청
- 클라이언트로부터
이메일과디바이스 ID를 입력받습니다. - 해당 디바이스 정보를 DB에 저장하되, 초기 상태는 인증 미완료(
is_active=false) 상태입니다. - 사용자 이메일로 인증 버튼이 포함된 메일을 전송합니다.
- 이메일 인증 처리
- 사용자가 메일 내 "인증" 버튼을 클릭하면 서버로
이메일과디바이스 ID가 전송됩니다. - 서버는 해당 정보를 기준으로 디바이스를 조회하여 상태를 인증 완료(`is_active=true)로 업데이트합니다.
- 디바이스 조회 및 삭제 (보안 검증)
- 요청자의
이메일과현재 디바이스 ID를 검증하여, 현재 요청한 기기가 인증된 상태(is_active=true)인지 확인합니다. 검증 통과 시member_id에 연결된 모든 디바이스 목록(ID, 등록일)을 반환합니다. - 조회와 동일한 인증 절차를 거친 후, 요청 본문에 포함된
삭제할 디바이스 ID를 DB에서 제거합니다. (성공 시 204 No Content 반환)
📑 기능 명세
API 구현
-
이메일 등록 API (디바이스 등록 요청)
- 요청 바디:
이메일,디바이스 ID - 로직: Device 테이블 데이터 생성 (
is_active=false), 인증 메일 발송 트리거
- 요청 바디:
-
이메일 인증 수행 API
- 요청 데이터:
이메일,디바이스 ID - 로직: 해당 디바이스 조회 후
is_active를true로 변경
- 요청 데이터:
-
등록된 디바이스 전체 조회 API
- 요청 헤더/바디:
이메일,현재 디바이스 ID - 응답: 해당 유저의 모든 디바이스 리스트 (
디바이스 ID,등록 날짜)
- 요청 헤더/바디:
-
- 요청 바디:
이메일,현재 디바이스 ID,삭제할 디바이스 ID - 응답: 204 No Content
- 요청 바디:
비즈니스 로직 및 기타
- 접근 제어 검증 로직
- API 요청 시
이메일+현재 디바이스 ID조합으로 DB를 조회하여is_active상태 확인
- API 요청 시
- 이메일 발송 서비스 연동