인프런 커뮤니티 질문&답변

준드래곤님의 프로필 이미지

작성한 질문수

스프링과 JPA 기반 웹 애플리케이션 개발

가입 확인 이메일 재전송

확인 메일 재전송 문의

작성

·

336

3

현재 Email Check Token 의 생성과 생성시간을 도메인에서 같이 관리하는데 이 비즈니스 로직은 계정을 처음 생성할 때만 호출합니다.

public void generateEmailCheckToken() {
    emailCheckToken = UUID.randomUUID().toString();
    emailCheckTokenGeneratedAt = LocalDateTime.now();
}

현재 코드로는 회원 가입 후 한시간이 지난 후면 계속 메일을 보낼 수 있을 것 같습니다. (따라서, 제 생각에는 수정이 필요해 보입니다.)

질문은 여기서 부터입니다.

그럼에도 일단 도메인에서 이렇게 만드신 이유는

체크 메일을 보낼 때 마다 토큰을 새로 생성해서 갱신하시려는 의도셨을 까요?

그런 의도가 맞다면 혹은 위의 의도대로 하려면

send mail 할 때 토큰을 새로 생성하여 보내도록 하는 것이 좋을 까요?

좋은 강의 잘보고 있습니다. 감사합니다 :)

답변 3

2

저도 같은 질문 하려했는데.. 여기 답변이 있군요.

감사합니다.

저는 일단 아래와 같이 수정했습니다.

 

    @GetMapping("/resend-confirm-email")
    public String resendConfirmEmail(@CurrentUser Account account, Model model) {
        if (!account.canSendConfirmEmail()) {
            model.addAttribute("error", "인증 이메일은 1시간에 한번만 전송할 수 있습니다.");
            model.addAttribute("email", account.getEmail());
            return "account/check-email";
        }

        member.generateEmailCheckToken();   //2021.12.31 추가
        accountService.sendSignUpConfirmEmail(account);
        return "redirect:/";
  }

2

백기선님의 프로필 이미지
백기선
지식공유자

네 맞습니다. 체크 메일을 보낼 때마다 새로 토큰을 만들려는 의도였어요. 그리고 말씀하신대로 send mail 할 때 생성하는게 좋겠습니다. 감사합니다.

1

옷!! 같은 이슈네요. ^^
저도 그부분 추가햇어요.
감사합니다.