@RequestMapping("/CheckMail")
@ResponseBody
public String SendMail(String mail, HttpSession session) {
Random random = new Random();
String key = "";
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(mail); // 스크립트에서 보낸 메일을 받을 사용자 이메일 주소
// 입력 키를 위한 코드
for (int i = 0; i < 3; i++) {
int index = random.nextInt(25) + 65; // A~Z까지 랜덤 알파벳 생성
key += (char) index;
}
int numIndex = random.nextInt(8999) + 1000; // 4자리 정수를 생성
key += numIndex;
message.setSubject("인증번호 입력을 위한 메일 전송");
message.setText("인증 번호 : " + key);
javaMailSender.send(message);
return key;
}
}
지난번 포스팅에서는 void함수여서 인증 키를 세션에 저장하고 사용하려 했지만
값을 받지 못해서 서버단에서 map을 사용하고, @Response Body 어노테이션을 지우고 리턴 값을 생성해줬다.
@ResponseBody를 추가하고 그냥 바로 String으로 리턴을 해준다.
개발자 도구에 값이 잘 찍혔다.
인증 키 일치여부 확인하기.
$(".compare").on("propertychange change keyup paste input", function() {
if ($(".compare").val() == key) { //인증 키 값을 비교를 위해 텍스트인풋과 벨류를 비교
$(".compare-text").text("인증 성공!").css("color", "black");
isCertification = true; //인증 성공여부 check
} else {
$(".compare-text").text("불일치!").css("color", "red");
isCertification = false; //인증 실패
}
});
아래와 같은 메서드를 사용하여 인증키 값 입력란에 키가 입력될 때마다
값을 비교하여 인증 성공여부를 좌측 텍스트에 출력한다.
인증 키 일치여부가 잘 작동된 모습이고.
$(".submit-btn").click(function(){
if(isCertification==false){ //인증이 완료되지 않았다면
alert("메일 인증이 완료되지 않았습니다.");
}
});
아래에 자바스크립트 코드를 이용하여 회원 가입 전, 메일 인증 여부에 대한 검사를 진행합니다.
메일 인증이 되었다면 submit버튼을 클릭하면 서버측으로 사용자의 입력값이 전송됩니다.
조건 미 충족시, 페이지 전환 막기
아래와 같이 스크립트만 추가하면 form의 submit버튼을 누르게 되면 조건이 충족되지 않아도 페이지가 넘어가 서버 측으로 데이터가 전송이 된다.
맨 처음에는 서버단에서 값을 비교해서 쿼리문을 실행하지 않으면 되지 않을까 하다가, 괜히 서버단에서 조건문 하나 더 추가하고 서버 측에 요청이 하나 더 가고.. 더 좋은 방법이 없을까 찾다가 스크립트로 제어할 수 있는 방법을 찾았다.
이를 막기위해 form의 속성을 추가해준다.
onsubmit 항복에 return 함수();를 추가하면 submit을 눌렀을 때, 함수를 실행한다.
$(".submit-btn").click(function submitCheck(){
if(isCertification==false){
alert("메일 인증이 완료되지 않았습니다.");
return false;
}else
true;
});
위와 같이 함수 이름을 똑같이 해주고,
인증이 잘 완료되면 ture를 리턴 아니면 false를 리턴해서 서버 측으로 데이터를 가지 못하도록 막는다.
'Java' 카테고리의 다른 글
Vi 편집기 (0) | 2020.11.24 |
---|---|
'cannot run program '/path/to/tomcat/bin/catalina.sh' error=13 permission denied (0) | 2020.11.24 |
JAVA]회원가입 시,이메일 인증 구현하기.[Gmail,지메일] (11) | 2020.10.05 |
JAVA] Arrays 클래스를 이용해서 배열 정렬하기. (0) | 2020.09.08 |
JAVA]크롤링을 이용하여 웹 텍스트 마이닝 사이트 만들기 (0) | 2020.08.11 |
댓글