Skip to content

이메일 기반 멀티 디바이스 인증 및 관리 기능 구현 #2

@jhan0121

Description

@jhan0121

✨ 구현 할 기능

이메일 인증을 통한 멀티 디바이스 등록 및 관리 시스템 구축

  • 동일한 이메일(계정)로 노트북, 데스크탑 등 여러 기기에서 로그인할 수 있는 환경 제공
  • 신규 디바이스 등록 시 이메일 발송 및 링크 클릭을 통한 is_active 활성화 처리
  • 현재 로그인된(인증된) 기기에서 본인의 다른 등록 기기 목록 조회 및 특정 기기 삭제(로그아웃/등록 해제) 기능

📢 구현 방식

본 기능은 1명의 유저가 N개의 디바이스를 가질 수 있는 구조로 구현합니다.

  1. 디바이스 등록 및 인증 요청
  • 클라이언트로부터 이메일디바이스 ID를 입력받습니다.
  • 해당 디바이스 정보를 DB에 저장하되, 초기 상태는 인증 미완료(is_active=false) 상태입니다.
  • 사용자 이메일로 인증 버튼이 포함된 메일을 전송합니다.
  1. 이메일 인증 처리
  • 사용자가 메일 내 "인증" 버튼을 클릭하면 서버로 이메일디바이스 ID가 전송됩니다.
  • 서버는 해당 정보를 기준으로 디바이스를 조회하여 상태를 인증 완료(`is_active=true)로 업데이트합니다.
  1. 디바이스 조회 및 삭제 (보안 검증)
  • 요청자의 이메일현재 디바이스 ID를 검증하여, 현재 요청한 기기가 인증된 상태(is_active=true)인지 확인합니다. 검증 통과 시 member_id에 연결된 모든 디바이스 목록(ID, 등록일)을 반환합니다.
  • 조회와 동일한 인증 절차를 거친 후, 요청 본문에 포함된 삭제할 디바이스 ID를 DB에서 제거합니다. (성공 시 204 No Content 반환)

📑 기능 명세

API 구현

  • 이메일 등록 API (디바이스 등록 요청)

    • 요청 바디: 이메일, 디바이스 ID
    • 로직: Device 테이블 데이터 생성 (is_active=false), 인증 메일 발송 트리거
  • 이메일 인증 수행 API

    • 요청 데이터: 이메일, 디바이스 ID
    • 로직: 해당 디바이스 조회 후 is_activetrue로 변경
  • 등록된 디바이스 전체 조회 API

    • 요청 헤더/바디: 이메일, 현재 디바이스 ID
    • 응답: 해당 유저의 모든 디바이스 리스트 (디바이스 ID, 등록 날짜)
  • 대상 디바이스 삭제 API #4

    • 요청 바디: 이메일, 현재 디바이스 ID, 삭제할 디바이스 ID
    • 응답: 204 No Content

비즈니스 로직 및 기타

  • 접근 제어 검증 로직
    • API 요청 시 이메일 + 현재 디바이스 ID 조합으로 DB를 조회하여 is_active 상태 확인
  • 이메일 발송 서비스 연동

📕 래퍼런스

Metadata

Metadata

Assignees

Labels

BEBackend✨ feat기능 추가

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions