Skip to content

이메일 인증 로직 개선

김동철 edited this page Jan 24, 2024 · 1 revision

문제 상황

  • 사용자 A가 이메일 인증 후, 사용자 B가 A보다 먼저 동일한 이메일로 회원가입 시 이메일 인증이 통과되는 문제가 발생

고민 내용

이메일 인증 요청 IP 주소와 회원가입 요청 IP 주소를 비교

  • 클라이언트의 네트워크에서 NAT가 동작하는 경우, 네트워크 내부의 클라이언트들을 구분하지 못하는 문제점이 존재

회원가입 후 이메일 인증을 진행하여 계정을 활성화하는 방식

  • 기존의 문제를 해결할 수 있지만, DB 스키마 변경 및 다수의 코드 수정이 발생

해결 방법

회원가입 요청 시 인증코드를 재검사

선점 가능성이 있는 이메일 인증내역을 사용하지 않고, 이메일 인증코드를 재검사하여 회원가입을 처리하도록 변경

  • Before : 이메일 인증코드 검증 -> 이메일 인증 내역 저장 -> 회원가입 요청 -> 이메일 인증 내역 조회 -> 회원가입 처리
  • After : 이메일 인증코드 검증 -> 일치 여부 응답 -> 회원가입 요청 -> 이메일 인증코드 검사 -> 회원가입 처리