반응형
회원 가입 완료 알림 메일 전송
이메일 인증을 위한 변수 선언
- emailAuthYn : 인증 여부 (boolean)
- emailAuthKey : 인증 키 (String)
- 변수 선언하였으나 DB에는 반영되지 않은 상태
- JPA에서 생성과 자동 업데이트가 설정되어 있으므로 실행과 동시에 DB에 반영
- 프로젝트를 실행시키자 DB에 반영된 모습
- setMailAuthYn: 기본값으로 'false'
- setMailAuthKey: randomUUID()를 이용하여 임의 생성
회원가입 시 MailAuthYn 및 MailAuthKey 반영 여부 테스트
- 회원 정보 입력 - 회원 가입하기
- 회원 가입 결과 - 완료(성공)
- 테이블에 인증키 값과 인증여부 값이 입력됨을 확인
인증키 값의 메일 전송을 구현
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;
}
}
인증키 값의 메일 발송 전송 테스트
- 회원 정보 입력 - 회원 가입하기
- 받은 메일에서 '가입 완료' 링크 클릭
- 페이지는 미구현되어 있으나,
- 인증값이 정상적으로 넘어오는 것을 확인
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 6-13. 스프링 시큐리티를 이용한 로그인&로그아웃 구현 (0) | 2022.02.17 |
---|---|
[Zero-base] 6-12. 전송된 메일을 통한 계정 활성화 구현 (0) | 2022.02.16 |
[Zero-base] 6-10. JavaMailSender를 통한 메일 전송 설정 및 메일 전송 테스트 (Gmail) (0) | 2022.02.16 |
[Zero-base] 6-9. 회원가입 POST SUBMIT된 내용 JPA를 통한 DB저장 (0) | 2022.02.16 |
[Zero-base] 6-8. 회원가입 입력폼 HTML작성과 서버 전송 (0) | 2022.02.15 |