반응형

회원 가입 완료 알림 메일 전송

 

Member.java

이메일 인증을 위한 변수 선언

  • emailAuthYn : 인증 여부 (boolean)
  • emailAuthKey : 인증 키 (String)

 

 

  • 변수 선언하였으나 DB에는 반영되지 않은 상태

 

 

  • JPA에서 생성과 자동 업데이트가 설정되어 있으므로 실행과 동시에 DB에 반영

 

 

  • 프로젝트를 실행시키자 DB에 반영된 모습

 

 

MemberServiceImpl.java

  • setMailAuthYn: 기본값으로 'false'
  • setMailAuthKey: randomUUID()를 이용하여 임의 생성

 


회원가입 시 MailAuthYn 및 MailAuthKey 반영 여부 테스트

 

  • 회원 정보 입력 - 회원 가입하기

 

 

  • 회원 가입 결과 - 완료(성공)

 

 

  • 테이블에 인증키 값과 인증여부 값이 입력됨을 확인

 


인증키 값의 메일 전송을 구현

 

MemberService.java

package com.zerobase.fastlms.member.service.impl;

import...

@RequiredArgsConstructor
@Service
public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository;
    private final MailComponents mailComponents;

    @Override
    public boolean register(MemberInput parameter) {

        Optional<Member> optionalMember =
                memberRepository.findById(parameter.getUserId());
        if (optionalMember.isPresent()) { return false; }

        String uuid = UUID.randomUUID().toString();

        Member member = new Member();
        member.setUserId(parameter.getUserId());
        member.setUserName(parameter.getUserName());
        member.setPhone(parameter.getPhone());
        member.setPassword(parameter.getPassword());
        member.setRegDt(LocalDateTime.now());
        member.setEmailAuthYn(false);
        member.setEmailAuthKey(UUID.randomUUID().toString());
        memberRepository.save(member);

        String email = parameter.getUserId();
        String subject = "fastlms 사이트 가입을 축하드립니다.";
        String text = "<p>fastlms 사이트 가입을 축하드립니다.</p>" +
                "<p>아래 링크를 클릭하셔서 가입을 완료 하세요.</p>" +
                "<div><a href='http://localhost:8080/member/email-auth?id=" +
                uuid + "'> 가입 완료 </a></div>";
        mailComponents.sendMail(email, subject, text);

        return true;
    }
}

 


인증키 값의 메일 발송 전송 테스트

 

  • 회원 정보 입력 - 회원 가입하기

 

 

  • 받은 메일에서 '가입 완료' 링크 클릭

 

 

  • 페이지는 미구현되어 있으나,
  • 인증값이 정상적으로 넘어오는 것을 확인

 


반응형

+ Recent posts