Kotlin 메일 인증 추가 1편 : 바로가기
Kotlin 메일 인증 추가 2편 : 바로가기
Kotlin 메일 인증 추가 3편 : 바로가기
메일 인증 시간을 정해주었다.
Service단에서 15분이 넘은 인증 코드는 유효하지 않도록 처리했다.
override fun signUp(request: SignUpRequest): UserResponse {
val getAuthCode = mailRepository.findAllByEmail(request.email)
?: throw EmailNotFoundException("Email", request.email)
val now = LocalDateTime.now()
val authMail = getAuthCode.find { it.authCode == request.authCode}
if (authMail != null && Duration.between(authMail.sendDate, now).toMinutes() > 15)
throw IllegalStateException("인증 번호가 만료된 상태입니다.")
1) Request에 포함된 이메일을 사용하여 mails 테이블에서 이메일이 같은 데이터를 DB에서 찾는다.
2) 현재 시각을 now에 저장한다.
3) DB에서 찾은 authCode와 유저가 입력한 authCode가 일치하는지 확인한다
4) authCode가 null값을 가지거나, 발송 후 현재 시각까지 15분 이상 지난 경우 오류를 뱉는다.
이렇게 남은 데이터는 휘발되지 않고 DB에 저장되는데,
주기적인 초기화가 필요한 상태이다.
스케쥴러를 사용해 삭제 할 수 있다는 점은 알고있지만
아직 공부하지 못해 적용시키지 못했다.