sms 인증후 회원가입 , 로그인 수정

This commit is contained in:
JSYOO 2021-10-20 13:21:55 +09:00
parent a3afd9cdac
commit 0912e1d031
10 changed files with 132 additions and 15 deletions

View File

@ -52,8 +52,8 @@ public class OAuthLogin {
scope.withScope("profile"); scope.withScope("profile");
scope.withScope("openid"); scope.withScope("openid");
scope.withScope("email"); scope.withScope("email");
scope.withScope("https://www.googleapis.com/auth/user.phonenumbers.read"); //scope.withScope("https://www.googleapis.com/auth/user.phonenumbers.read");
scope.withScope("https://www.googleapis.com/auth/user.birthday.read"); //scope.withScope("https://www.googleapis.com/auth/user.birthday.read");
this.oauthService = new ServiceBuilder(oauthVO.getClientId()) this.oauthService = new ServiceBuilder(oauthVO.getClientId())
.apiSecret(oauthVO.getClientSecret()) .apiSecret(oauthVO.getClientSecret())
@ -152,6 +152,8 @@ public class OAuthLogin {
if (rootNode.has("email")) if (rootNode.has("email"))
user.setSnsUserId(StringUtil.getString(rootNode.get("email").asText(), "")); user.setSnsUserId(StringUtil.getString(rootNode.get("email").asText(), ""));
if (rootNode.has("name"))
user.setSnsName(StringUtil.getString(rootNode.get("name").asText(), ""));
} }
else if (this.oauthVO.isKakao()) { else if (this.oauthVO.isKakao()) {

View File

@ -59,7 +59,9 @@ public interface MemberService
public int selectSnsIdCount(OAuthUniversalUser oauthUser); public int selectSnsIdCount(OAuthUniversalUser oauthUser);
public void deleteMembership(NlibLoginVO loginVO) throws Exception;; public void deleteMembership(NlibLoginVO loginVO) throws Exception;
public void sendSms(NlibSmsVO smsVO) throws Exception;
} }

View File

@ -0,0 +1,81 @@
package nlib.user.service;
import java.io.Serializable;
/**
* <pre>
* @Class Name : NlibSmsVO.java
*
* @Description : SMS발송 VO
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 10. 19. JSYOO 최초 생성
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12.
* @version 1.0
*
*/
public class NlibSmsVO implements Serializable {
private static final long serialVersionUID = -8274004534207618049L;
private String cmid; /* 데이터 ID */
private String msgType; /* 데이터 타입 (SMS 0/FAX 2/PHONE 3 /MMS 5/AT 6/FT 7/RCS 8/BI 11/BW 12) */
private String requestTime; /* 데이터 등록 시간 */
private String sendTime; /* 발송 기준 시간 */
private String destPhone; /* 수신번호 */
private String sendPhone; /* 발신자번호 */
private String msgBody; /* 메시지 내용 */
public String getCmid() {
return cmid;
}
public void setCmid(String cmid) {
this.cmid = cmid;
}
public String getMsgType() {
return msgType;
}
public void setMsgType(String msgType) {
this.msgType = msgType;
}
public String getRequestTime() {
return requestTime;
}
public void setRequestTime(String requestTime) {
this.requestTime = requestTime;
}
public String getSendTime() {
return sendTime;
}
public void setSendTime(String sendTime) {
this.sendTime = sendTime;
}
public String getDestPhone() {
return destPhone;
}
public void setDestPhone(String destPhone) {
this.destPhone = destPhone;
}
public String getSendPhone() {
return sendPhone;
}
public void setSendPhone(String sendPhone) {
this.sendPhone = sendPhone;
}
public String getMsgBody() {
return msgBody;
}
public void setMsgBody(String msgBody) {
this.msgBody = msgBody;
}
}

View File

@ -11,6 +11,7 @@ import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.user.service.NlibSmsVO;
@Mapper("memberDAO") @Mapper("memberDAO")
public interface MemberDAO public interface MemberDAO
@ -44,4 +45,6 @@ public interface MemberDAO
public int selectSnsIdCount(OAuthUniversalUser oauthUser); public int selectSnsIdCount(OAuthUniversalUser oauthUser);
public void deleteMembership(NlibLoginVO loginVO) throws Exception; public void deleteMembership(NlibLoginVO loginVO) throws Exception;
public void sendSms(NlibSmsVO smsVO) throws Exception;
} }

View File

@ -18,6 +18,7 @@ import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.user.service.MemberService; import nlib.user.service.MemberService;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.user.service.NlibSmsVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@Service("memberService") @Service("memberService")
@ -234,4 +235,8 @@ public class MemberServiceImpl implements MemberService
memberDAO.deleteMembership(loginVO); memberDAO.deleteMembership(loginVO);
} }
public void sendSms(NlibSmsVO smsVO) throws Exception {
memberDAO.sendSms(smsVO);
}
} }

View File

@ -13,6 +13,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import nlib.util.UUID;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.inject.Inject; import javax.inject.Inject;
@ -45,6 +46,7 @@ import nlib.mail.service.EmailVO;
import nlib.user.service.LoginService; import nlib.user.service.LoginService;
import nlib.user.service.MemberService; import nlib.user.service.MemberService;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.user.service.NlibSmsVO;
import nlib.user.service.UserInfoService; import nlib.user.service.UserInfoService;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@ -127,6 +129,10 @@ public class MemberController extends NlibCommonController{
@Value("#{properties['mailing.sender.membership.name']}") @Value("#{properties['mailing.sender.membership.name']}")
private String senderName; private String senderName;
// SMS 보내는 사람 번호
@Value("#{properties['sms.sender.phone.number']}")
private String senderNumber;
//게스트 USERID //게스트 USERID
@Value("#{properties['guest.userid']}") @Value("#{properties['guest.userid']}")
private String gUserId; private String gUserId;
@ -235,10 +241,12 @@ public class MemberController extends NlibCommonController{
String mId = null; String mId = null;
// 등록된 ID가 있는 확인 if(!(oauthUser == null))
if(!(StringUtil.getString(oauthUser.getSnsUserId(),"")== "")) {
mId =memberService.selectAlreadySignUpId(oauthUser); // 등록된 ID가 있는 확인
if(!(StringUtil.getString(oauthUser.getSnsUserId(),"")== ""))
mId =memberService.selectAlreadySignUpId(oauthUser);
}
/* 등록된 ID가 있을때 통합처리 */ /* 등록된 ID가 있을때 통합처리 */
if(!StringUtil.getString(mId, "").equals("")) if(!StringUtil.getString(mId, "").equals(""))
{ {
@ -454,17 +462,18 @@ public class MemberController extends NlibCommonController{
replaceNlibLoginVO(request, loginVO); replaceNlibLoginVO(request, loginVO);
}else }else
{ {
//세션에 저장
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId); OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO(); NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때 //이미 생성된 VO가 없을때
if(vo==null) if(vo == null)
vo= new NlibLoginVO(); vo= new NlibLoginVO();
vo.setEmail(email); vo.setEmail(email);
vo.setEmailVrfctNo(CertNumber); vo.setEmailVrfctNo(CertNumber);
oauthUser.setNlibVO(vo); oauthUser.setNlibVO(vo);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser); SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
} }
//이메일 발송 //이메일 발송
@ -558,6 +567,7 @@ public class MemberController extends NlibCommonController{
} }
else { else {
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId); OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO(); NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때 //이미 생성된 VO가 없을때
if(vo == null) if(vo == null)
@ -569,9 +579,13 @@ public class MemberController extends NlibCommonController{
SessionConfig.setNewMemberInfo(jsessionId,oauthUser); SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
} }
NlibSmsVO smsVO=new NlibSmsVO();
smsVO.setCmid(UUID.getNlibCommonID("",32));
smsVO.setDestPhone(mobileNo);
smsVO.setSendPhone(senderNumber);
smsVO.setMsgBody("인증번호는 " + CertNumber + " 입니다.");
//문자발송 솔루션 //문자발송 솔루션
memberService.sendSms(smsVO);
//------------ //------------
} }

View File

@ -22,6 +22,7 @@
<typeAlias alias="RisVO" type="nlib.col.service.RisVO" /> <typeAlias alias="RisVO" type="nlib.col.service.RisVO" />
<typeAlias alias="CollectionVO" type="nlib.col.service.CollectionVO" /> <typeAlias alias="CollectionVO" type="nlib.col.service.CollectionVO" />
<typeAlias alias="DeptVO" type="nlib.col.service.DeptVO" /> <typeAlias alias="DeptVO" type="nlib.col.service.DeptVO" />
<typeAlias alias="NlibSmsVO" type="nlib.user.service.NlibSmsVO" />
</typeAliases> </typeAliases>

View File

@ -200,4 +200,11 @@
WHERE 1=1 WHERE 1=1
AND MB_INFO_ID = #{mbInfoId} AND MB_INFO_ID = #{mbInfoId}
</update> </update>
<!-- sms 발송 -->
<insert id="sendSms" parameterType="NlibSmsVO">
/* MemberDAO.sendSms */
INSERT INTO biz_msg ( CMID, REQUEST_TIME, SEND_TIME, DEST_PHONE, SEND_PHONE, MSG_BODY, NATION_CODE)
VALUES (#{cmid}, NOW(), NOW(), #{destPhone}, #{sendPhone},#{msgBody},'82')
</insert>
</mapper> </mapper>

View File

@ -107,7 +107,8 @@ mailing.sender.membership.email = no-reply@nlib.org
#\uba54\uc77c \ubcf4\ub0b4\ub294\uc0ac\ub78c \uc774\ub984 #\uba54\uc77c \ubcf4\ub0b4\ub294\uc0ac\ub78c \uc774\ub984
mailing.sender.membership.name = Nlib mailing.sender.membership.name = Nlib
#SMS \ubcf4\ub0b4\ub294\uc0ac\ub78c \ubc88\ud638
sms.sender.phone.number = 027042322
#---------------------------------------- #----------------------------------------
# \uac80\uc0c9\uc5d4\uc9c4 # \uac80\uc0c9\uc5d4\uc9c4
#---------------------------------------- #----------------------------------------

View File

@ -76,16 +76,17 @@ function signUp(){
%> %>
$("#loginUserId").val($("#email").val()); $("#loginUserId").val($("#email").val());
document.joinForm.action="${pageContext.request.contextPath}/member/insertMemberInfo.do"; document.joinForm.action="${pageContext.request.contextPath}/member/insertMemberInfo.do";
return true; document.joinForm.submit();
}else{
return false;
} }
return false;
} }
$(document).ready(function() { $(document).ready(function() {
$("input:radio[name='gender']:radio[value='${loginVO.snsGender}']").prop('checked', true); $("input:radio[name='gender']:radio[value='${loginVO.snsGender}']").prop('checked', true);
var birthday="${loginVO.snsBirthday}"; var birthday="${loginVO.snsBirthday}";
console.log("${loginVO.snsBirthday}");
if(!birthday == "") if(!birthday == "")
{ {