이메일 인증과 딱히 다르진 않다
핸드폰으로 인증번호를 전송하자!
html
js
service
from이 보내는 번호인데
실제 번호여서 지워놨다
가짜 번호로 테스트를 해봐야겠다
없는 번호도 가는지
안 간다 테스트 해봤는데
없는 번호로 하면 안간다
restcontroller
f(principaldetail.getUsername()!=null)
로그인 여부 검사를 하고
(아마 비로그인 시 알아서 예외를 일으켜주는 걸로 아는데
혹시 몰라서 걸었다)
String smsRandNum=utilservice.GetRandomNum(6);
6자리 인증번호를 만들고
httpSession.setAttribute("phoneNum", phone.get("phone"));
httpSession.setAttribute("smsRandNum", smsRandNum);
세션에 요청한 전화번호와 함께 담아준다
if(coolSmsService.sendMessege((String)phone.get("phone"), smsRandNum))
번호로 전송한다
마지막 꺼만 입력하면 된다
이제 처리를 위한 작업을 하자
js
service
만약에 번호가 맞다면
uservo.setPhone(phoneNum);
db에 전화번호를 등록해주고
uservo.setPhonecheck("true");
인증을 true로 바꿔준다
restcontroller
f(principaldetail.getUsername()!=null)
로그인 여부를 확인하고
if(httpSession.getAttribute("smsRandNum").equals(jsonObject.get("randnum")))
번호가 맞는지 검사한다
principaldetail.getUservo().setPhonecheck("true");
맞다면 시큐리티 세션정보를 바꿔주고
userservice.changeSmsCheck(principaldetail.getUsername(),(String)httpSession.getAttribute("phoneNum"));
db정보를 바꿔주자
httpSession.removeAttribute("phoneNum");
httpSession.removeAttribute("smsRandNum");
그리고 세션을 비워주자!
결과
다른 값 입력
이전 값 입력
388963
마지막 값 입력
545253
db도 바뀌고
현재 로그인 시큐리티 세션도 잘 바뀐다!
이제 코드 정리를 좀 하고 답글을 만들어야겠다
예약시스템에 전화인증 여부 코드도 넣어야 하고
컨트롤러나 확인하는 방식도 좀 획일 화 시키고 해야겠다!
'Spring boot kim's cafe > 문자발송시스템' 카테고리의 다른 글
Springboot 문자 인증/전송!(1) with coolsms And Message (0) | 2021.07.09 |
---|