Spring Boot - 이메일 인증 (1) 설명

ysh·2023년 11월 25일
0

인턴십

목록 보기
17/25

이메일 인증

  • 기능에 대해서는 딱히 설명할 게 없을 듯 하다. 그냥 이메일로 인증 코드를 보내고, 해당 인증 코드를 확인하여 인증하는 방식이다.
  • spring boot 프레임 워크에서 제공하는 spring-boot-starter-mail을 사용한다.
  • SMTP(Simple Mail Transfer Protocol)는 Gmail의 SMTP 서버를 활용한다.

구조

인증번호 전송

  • 사용자에게 이메일을 입력받아,
  • 인증 코드를 생성하여 이메일과 함께 DB에 저장한다.
  • 인증코드를 이메일로 보내준다.

인증번호 인증

  • 이메일과 인증 코드를 받아,
  • 일단 이메일로 찾아서 유효한 인증 코드 정보가 있는 지 찾고,
  • 유효한 인증 코드 정보와 입력한 인증 코드가 일치하는 지 검증 후
  • 인증 성공(인증 코드 무효화 필요) / 실패 를 반환한다.

메모(전체 로직)

gradle 추가 - spring boot starter mail

MailConfig - JavaMailSender, MailProperties 설정

yml - 구글 앱 비밀번호, mail 관련 설정 추가

이메일로 인증번호 전송 로직

  • 이메일 받아서
  • 인증 코드 생성 (따로 함수)
  • email service 에서 sendEmailAuthentication 호출
  • message 객체 생성
  • 내용을 생성하고
  • message에 할당
  • 전송
  • 전에 발송한 인증코드가 있으면 무효화
  • 인증코드 데이터 DB 저장 (UserAuthenticationCodeEntity 필요)

이메일 인증번호 인증 로직

  • email과 인증 코드를 받아서
  • email로 DB에서 찾고, (없으면 인증 코드 없음 반환)
  • 찾은 entity의 코드가 입력된 code와 일치하는 지 확인 (않으면 인증 실패 반환)
  • 성공 시 인증 코드 데이터 무효화
  • 마찬가지로 패스워드 찾기 인증도. if문으로 조건 추가해서 하면 된다.
profile
유승한

0개의 댓글

관련 채용 정보