|
|
@@ -17,7 +17,6 @@
|
|
|
*******************************************************************************
|
|
|
-->
|
|
|
<body>
|
|
|
-
|
|
|
<th:block layout:fragment="content">
|
|
|
<div id="container" class="container mb">
|
|
|
<div class="wrap">
|
|
|
@@ -52,21 +51,9 @@
|
|
|
<div class="help_block">
|
|
|
<!-- //회원 아이디 또는 비밀번호가 일치하지 않을때 -->
|
|
|
<!-- 보안문자 입력시 -->
|
|
|
- <div class="captcha mt40" style="display: none;"> <!-- 캡차영역 -->
|
|
|
- <ul>
|
|
|
- <li class="captcha_box"> <!-- 캡차이미지 -->
|
|
|
- <img src="" id="imgCaptcha"/>
|
|
|
- </li>
|
|
|
- <li class="captcha_btn_dual">
|
|
|
- <button type="button" id="play_audio" onclick="fnReloadCaptchaImage();">새로고침</button>
|
|
|
- <button type="button" id="swap_captcha">음성듣기</button>
|
|
|
- </li>
|
|
|
- <li class="captcha_area">
|
|
|
- <label for="captcha" id="label_captcha_area">보안문자 입력</label>
|
|
|
- <input type="text" id="captcha" name="captcha" title="문자입력"/>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <div id="recaptcha" class="g-recaptcha" style="display: none;" data-callback="fnRecaptchaCallback" th:data-sitekey="${sitekey}"></div>
|
|
|
+
|
|
|
<!-- //보안문자 입력시 -->
|
|
|
<!-- 회원 아이디 또는 비밀번호가 일치하지 않을때 -->
|
|
|
<p class="t_err t_err_login_fail" style="display: none;">
|
|
|
@@ -121,112 +108,31 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
<script th:inline="javascript">
|
|
|
/*<![CDATA[*/
|
|
|
let ckLoginId = "ckLoginId";
|
|
|
+ let rechaptchCheck = true;
|
|
|
|
|
|
- // 로그인블락시간(초) 설정
|
|
|
- let fnSetLoginBlockTime = function() {
|
|
|
- let blockSecs = Number($("#blockSecs2").html()) - 1;
|
|
|
- $("#blockSecs2").html(blockSecs);
|
|
|
- if (blockSecs == 0) {
|
|
|
- clearTimeout(fnSetLoginBlockTime);
|
|
|
- $('#btnLogin').attr('disabled',false);
|
|
|
- } else {
|
|
|
- setTimeout(fnSetLoginBlockTime, 1000);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 로그인
|
|
|
$('#btnLogin').on('click', function() {
|
|
|
if (!gagajf.validation($('#loginForm'))) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (!rechaptchCheck) {
|
|
|
+ mcxDialog.alert("자동 방지 봇을 확인 한뒤 진행 해 주세요.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- let params = new Object();
|
|
|
+ let params = {};
|
|
|
params.loginId = $('#loginForm input[name=loginId]').val();
|
|
|
params.passwd = $('#loginForm input[name=passwd]').val();
|
|
|
-
|
|
|
+
|
|
|
$.post($('#loginForm').prop('action')
|
|
|
, $.param(params)
|
|
|
- , function(result) {
|
|
|
- if (result.status != 'OK') {
|
|
|
-
|
|
|
- if (result.status == 'PWD_5WRONG') {
|
|
|
- // Do nothing
|
|
|
- } else if (result.status == 'DORMANT_CUST') {
|
|
|
- // 휴면회원
|
|
|
- mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
|
|
|
- sureBtnText: "확인",
|
|
|
- sureBtnClick: function() {
|
|
|
- cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
|
|
|
- }
|
|
|
- });
|
|
|
- return;
|
|
|
- } else if (result.status == 'SECEDE_CUST') {
|
|
|
- // 탈퇴회원
|
|
|
- } else if (result.status == 'SESSION_EXPIRED') {
|
|
|
- // 세션만료
|
|
|
- } else if (result.status == 'CI_EMPTY') {
|
|
|
- // 본인이증 필요한 회원
|
|
|
- mcxDialog.alertC("본인인증 후 다시 로그인 하시기 바랍니다.", {
|
|
|
- sureBtnText: "확인",
|
|
|
- sureBtnClick: function() {
|
|
|
- cfnGoToPage(_PAGE_CUSTOMER_CERTIFICATION);
|
|
|
- }
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (!gagajf.isNull(result.message)) {
|
|
|
- let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
|
|
|
-
|
|
|
- $("#err_msg").html(result.message);
|
|
|
- $("#login_fail_cnt").html(loginFailCnt);
|
|
|
- $("#login_remain_cnt").html(10 - loginFailCnt);
|
|
|
- $(".t_err_login_fail").show();
|
|
|
-
|
|
|
- if (loginFailCnt >= 5 && loginFailCnt < 10) {
|
|
|
- // 비밀번호 5회 이상 틀린 경우 캡챠 노출
|
|
|
- $('.captcha').show();
|
|
|
- } else if (loginFailCnt >= 10) {
|
|
|
- $('.captcha').hide();
|
|
|
-
|
|
|
- // 비밀번호 10회 이상 틀린 경우 로그인 블락
|
|
|
- let blockSecs = Number(result.loginFailInfo.blockSecs);
|
|
|
- if (blockSecs > 0) {
|
|
|
- $("#blockSecs2").html(blockSecs);
|
|
|
- fnSetLoginBlockTime();
|
|
|
- $("#blockSecs1").show();
|
|
|
- $('#btnLogin').attr('disabled',true);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return; // 정상적으로 로그인 되지 않았으므로 return
|
|
|
- }
|
|
|
-
|
|
|
- document.location.href = result.returnUrl;
|
|
|
-
|
|
|
-// if (gagajf.isNull(result.returnUrl)) {
|
|
|
-// cfnGoToPage(_PAGE_MAIN);
|
|
|
-// } else {
|
|
|
-// if (result.returnUrl.indexOf(_PAGE_DIRECT_BUY) > -1) {
|
|
|
-// // 바로주문
|
|
|
-// jfOrderByMember();
|
|
|
-// } else if (result.returnUrl.indexOf(_PAGE_CUSTOMER_JOIN) > -1 ||
|
|
|
-// result.returnUrl.indexOf(_PAGE_CUSTOMER_ID_FIND) > -1 ||
|
|
|
-// result.returnUrl.indexOf(_PAGE_CUSTOMER_PW_FIND) > -1 ||
|
|
|
-// result.returnUrl.indexOf(_PAGE_CUSTOMER_JOIN_COMPLETE) > -1) {
|
|
|
-// cfnGoToPage(_PAGE_MAIN);
|
|
|
-// } else {
|
|
|
-// document.location.href = result.returnUrl;
|
|
|
-// }
|
|
|
-// }
|
|
|
- }
|
|
|
+ , fnReloadAfterLogin
|
|
|
, 'json');
|
|
|
});
|
|
|
+
|
|
|
|
|
|
// Save ID
|
|
|
$('#chkSaveId').on('click', function() {
|
|
|
@@ -240,10 +146,106 @@
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- // 캡챠 이미지 로딩
|
|
|
- let fnReloadCaptchaImage = function() {
|
|
|
- $('#imgCaptcha').attr('src', '/common/captcha.do?dummy=' + new Date());
|
|
|
+
|
|
|
+ //엔터키 로그인
|
|
|
+ $('#loginForm input[name=passwd]').keypress(function (event) {
|
|
|
+ if (event.which === 13) {
|
|
|
+ event.preventDefault();
|
|
|
+ fnValidConfirm();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 로그인 후 처리
|
|
|
+ var fnReloadAfterLogin = function(result) {
|
|
|
+ if (result.status === 'OK') {
|
|
|
+ document.location.href = result.returnUrl;
|
|
|
+ } else {
|
|
|
+ fnFailLoginProcess(result);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 로그인 실패 후 과정
|
|
|
+ var fnFailLoginProcess = function (result) {
|
|
|
+ if (result.status === 'SECEDE_CUST') {
|
|
|
+ // 탈퇴회원
|
|
|
+ } else if (result.status === 'SESSION_EXPIRED') {
|
|
|
+ // 세션만료
|
|
|
+ } else if (result.status === 'DORMANT_CUST') {
|
|
|
+ // 휴면회원
|
|
|
+ mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ } else if (result.status === 'CI_EMPTY') {
|
|
|
+ // 본인이증 필요한 회원
|
|
|
+ mcxDialog.alertC("본인인증 후 다시 로그인 하시기 바랍니다.", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ cfnGoToPage(_PAGE_CUSTOMER_CERTIFICATION);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!gagajf.isNull(result.message)) {
|
|
|
+ grecaptcha.reset(); // 리캡챠 리셋
|
|
|
+ let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
|
|
|
+ $("#err_msg").html(result.message);
|
|
|
+ $("#login_fail_cnt").html(loginFailCnt);
|
|
|
+ $("#login_remain_cnt").html(10 - loginFailCnt);
|
|
|
+ $(".t_err_login_fail").show();
|
|
|
+ if (loginFailCnt >= 5 && loginFailCnt < 10) {
|
|
|
+ // 비밀번호 5회 이상 틀린 경우 캡챠 노출
|
|
|
+ $('#recaptcha').show();
|
|
|
+ rechaptchCheck = false;
|
|
|
+ } else if (loginFailCnt >= 10) {
|
|
|
+ $('#recaptcha').hide();
|
|
|
+ rechaptchCheck = true;
|
|
|
+ // 비밀번호 10회 이상 틀린 경우 로그인 블락
|
|
|
+ let blockSecs = Number(result.loginFailInfo.blockSecs);
|
|
|
+
|
|
|
+ if (blockSecs > 0) {
|
|
|
+ $("#blockSecs2").html(blockSecs);
|
|
|
+ fnSetLoginBlockTime();
|
|
|
+ $("#blockSecs1").show();
|
|
|
+ $('#btnLogin').attr('disabled',true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return; // 정상적으로 로그인 되지 않았으므로 return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 구글 캡챠 콜백함수
|
|
|
+ var fnRecaptchaCallback = function () {
|
|
|
+ let token = $("#g-recaptcha-response").val();
|
|
|
+ let params = {};
|
|
|
+ params.token = token;
|
|
|
+ gagajf.ajaxSubmit('/verify/recaptcha','', fnVerifyReCaptchaCallback, params);
|
|
|
+ };
|
|
|
+
|
|
|
+ // Token 인증
|
|
|
+ var fnVerifyReCaptchaCallback = function (result) {
|
|
|
+ if (result.success) {
|
|
|
+ rechaptchCheck = true;
|
|
|
+ } else {
|
|
|
+ rechaptchCheck = false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 로그인블락시간(초) 설정
|
|
|
+ let fnSetLoginBlockTime = function() {
|
|
|
+ let blockSecs = Number($("#blockSecs2").html()) - 1;
|
|
|
+ $("#blockSecs2").html(blockSecs);
|
|
|
+ if (blockSecs <= 0) {
|
|
|
+ clearTimeout(fnSetLoginBlockTime);
|
|
|
+ $('#btnLogin').attr('disabled',false);
|
|
|
+ } else {
|
|
|
+ setTimeout(fnSetLoginBlockTime, 1000);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// SNS 로그인 콜백함수
|
|
|
@@ -266,60 +268,38 @@
|
|
|
return;
|
|
|
}
|
|
|
if (userInfo.custStat === 'DORMANT_CUST') {
|
|
|
- cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
|
|
|
+ mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
if (userInfo.custStat === 'FAIL_CUST') {
|
|
|
mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
|
|
|
return;
|
|
|
}
|
|
|
- if (userInfo.custStat === 'NEW_CUST') {
|
|
|
+ if (userInfo.custStat === 'NEW_CUST') { // 회원가입
|
|
|
cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
|
|
|
}
|
|
|
|
|
|
- if (userInfo.custStat === 'NEED_AGREE_CUST'){
|
|
|
+ if (userInfo.custStat === 'NEED_AGREE_CUST') { // YES24 로그인 시 동의화면 필요
|
|
|
cfnConsentUseInfo(userInfo.custNm);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
if (userInfo.custStat === 'SUCC_CUST') {
|
|
|
let params = {};
|
|
|
params.snsType = userInfo.snsType;
|
|
|
params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
|
|
|
$.post(_frontUrl + '/login'
|
|
|
, $.param(params)
|
|
|
- , function(result) {
|
|
|
- fnReloadAfterLogin(result);
|
|
|
- }
|
|
|
+ ,fnReloadAfterLogin
|
|
|
, "json");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
};
|
|
|
|
|
|
- var fnReloadAfterLogin = function(result) {
|
|
|
- if (result.status === 'OK') {
|
|
|
- document.location.href = result.returnUrl;
|
|
|
- } else if (result.status === 'EMAIL_DUP') {
|
|
|
-
|
|
|
- } else if(result.status === 'DORMANT_CUST') {
|
|
|
- cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
|
|
|
- } else if(result.status === 'SECEDE_CUST') {
|
|
|
-
|
|
|
- } else {
|
|
|
- //cfnGoToPage(_PAGE_CUSTOMER_JOIN_CERTIFY_SNS);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- //엔터키 확인
|
|
|
- $('#loginForm input[name=passwd]').keypress(function (event) {
|
|
|
- if (event.which === 13) {
|
|
|
- event.preventDefault();
|
|
|
- fnValidConfirm();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
$(document).ready(function() {
|
|
|
+
|
|
|
$('#loginForm input[name=loginId]').val(gagajf.getCookie(ckLoginId));
|
|
|
if (gagajf.isNull($('#loginForm input[name=loginId]').val())) {
|
|
|
$('#loginForm input[name=loginId]').focus();
|
|
|
@@ -331,7 +311,6 @@
|
|
|
});
|
|
|
/*]]>*/
|
|
|
</script>
|
|
|
-
|
|
|
</th:block>
|
|
|
|
|
|
</body>
|