Forráskód Böngészése

모바일 회원가입 개발 중

jsshin 5 éve
szülő
commit
ece739ca02

+ 7 - 3
src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java

@@ -52,7 +52,8 @@ public class Yes24Login {
 
 	private String id;
 	private String type;
-	private String requestUrl;
+	private String webRequestUrl;
+	private String mobRequestUrl;
 	private String callBackUrl;
 	private String userInfoUrl;
 	private String linkUrl;
@@ -62,7 +63,8 @@ public class Yes24Login {
 	public void init() {
 		id = env.getProperty("yes24.id");
 		type = env.getProperty("yes24.type");
-		requestUrl = env.getProperty("yes24.login.requestUrl");
+		webRequestUrl = env.getProperty("yes24.login.web.requestUrl");
+		mobRequestUrl = env.getProperty("yes24.login.mob.requestUrl");
 		callBackUrl = env.getProperty("yes24.login.callbackUrl");
 		userInfoUrl = env.getProperty("yes24.userInfoUrl");
 		linkUrl = env.getProperty("yes24.linkUrl");
@@ -71,7 +73,8 @@ public class Yes24Login {
 		log.debug("\n\n---- YES24 initialization started ----");
 		log.debug("id: [{}]", id);
 		log.debug("type: [{}]", type);
-		log.debug("requestUrl: [{}]", requestUrl);
+		log.debug("webRequestUrl: [{}]", webRequestUrl);
+		log.debug("mobRequestUrl: [{}]", mobRequestUrl);
 		log.debug("callBackUrl: [{}]", callBackUrl);
 		log.debug("userInfoUrl: [{}]", userInfoUrl);
 		log.debug("linkUrl: [{}]", linkUrl);
@@ -88,6 +91,7 @@ public class Yes24Login {
 	 */
 	public String getAuthorizeUrl(String state) {
 		String idGb = TsfSession.getFrontGb().equals("P") ? "PID" : "MID";
+		String requestUrl = TsfSession.getFrontGb().equals("P") ? webRequestUrl : mobRequestUrl;
 		StringBuilder apiUrlBuilder = new StringBuilder();
 		String redirectUri = GagaFileUtil.getConcatenationPath(PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), callBackUrl);
 		apiUrlBuilder.append(requestUrl)

+ 3 - 2
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -817,12 +817,13 @@ public class TsfCustomerController extends TsfBaseController {
 	 * @since 2021. 03. 25
 	 */
 	@PostMapping("/consent/useinfo/form")
-	public ModelAndView cnstentUseInfoForm(@RequestBody Customer customer) {
+	public ModelAndView cnstentUseInfoForm(Customer customer) {
 		ModelAndView mav = new ModelAndView();
 
 		mav.addObject("custNm", customer.getCustNm());
 
-		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
+//		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
+		mav.setViewName("web/customer/ConsentUseInfoFormWeb");
 
 		return mav;
 	}

+ 5 - 3
src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
@@ -351,12 +352,13 @@ public class TsfIndexController extends TsfBaseController {
 	 * @author jsshin
 	 * @since 2021. 02. 23
 	 */
-	@RequestMapping("/signin/yes24LoginCallback")
-	public ModelAndView yes24LoginCallback(@RequestParam("ipin") String ipin, HttpSession session) {
+	@RequestMapping( "/signin/yes24LoginCallback")
+	public ModelAndView yes24LoginCallback(@RequestParam(value = "ipin", required = false) String ipin, @RequestParam(value = "ipn", required = false) String ipn, HttpSession session) {
 		ModelAndView mav = new ModelAndView();
 		boolean isSnsLoing = false;
 		GagaMap userInfo = new GagaMap();
-
+		log.info("ipn {}", ipn);
+		log.info("ipin {}", ipin);
 		if (StringUtils.isNotBlank(ipin)) {
 			userInfo = yes24Login.getUserInfo(ipin);
 			userInfo.setString("snsType", TscConstants.SnsType.YES24.value());

+ 3 - 1
src/main/resources/config/application.yml

@@ -102,7 +102,9 @@ kakao:
 yes24 :
     id : 101582
     type : ISTYLE
-    login.requestUrl: https://www.yes24.com/Templates/FTLoginPartner.aspx
+    login :
+           web.requestUrl : https://www.yes24.com/Templates/FTLoginPartner.aspx
+           mob.requestUrl : https://m.yes24.com/Momo/Templates/FTLogin.aspx
     login.callbackUrl: /signin/yes24LoginCallback
     userInfoUrl : https://wsyes24.yes24.com/Yes_Mem.asmx/Yes_Mem_Search_By_CI
     linkUrl : https://wsyes24.yes24.com/Yes_Mem.asmx/Yes_Partner_Insert

+ 439 - 0
src/main/webapp/WEB-INF/views/mob/customer/JoinFormMob.html

@@ -0,0 +1,439 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/LoginLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : JoinTypeFormMob.html
+ * @desc    : 회원정보 입력 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.16   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<style>
+	.show{display:block}
+	.hide{display:none}
+</style>
+<main class="container mb">
+	<!-- ★ 컨텐츠 시작 -->
+	<section class="content mb_join_2">
+		<div class="inner">
+			<div class="close">
+				<a href="javascript:void(0)" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
+			</div>
+		</div>
+		<div class="inner">
+			<h2 class="title">회원정보 입력</h2>
+		</div>
+		<div class="inner">
+
+			   <form class="form_wrap form_full" role="form">
+					<div class="form_head">
+						<h2 class="title sr-only">회원정보 입력</h2>
+					</div>
+					<!-- 아이디 사용가능시 -->
+					<div class="form_field">
+						<label class="input_label sr-only">아이디</label>
+						<div class="input_wrap form_full">
+							<input type="text" id="custId" name="custId" placeholder="아이디" class="form_control" required="required" data-valid-type="alphaNumeric" data-valid-name="아이디" minlength="4" maxlength="12"/>
+							<span class="usable" style="display:block;"></span>
+						</div>
+						<div id="dupCustIdDiv" class="help_block hide">
+							<p class="t_err">이미 가입된 아이디입니다.다른 아이디를 입력하여 주세요.</p>
+						</div>
+					</div>
+					<!-- //아이디 사용가능시 -->
+					<!-- 오류시 부모 div에서 제어 -->
+					<div class="form_field">
+						<label class="input_label sr-only">비밀번호</label>
+						<div class="input_wrap form_full">
+							<input type="password" id="passwd" name="passwd" placeholder="비밀번호 (8~20자 영문, 숫자, 특수문자 중 2가지 이상 조합)" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="비밀번호"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+							<div class="help_block">
+								<!-- 사용불가 비밀번호일경우 -->
+								<p class="mt10">
+									<span id="firstFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>영문(대/소문자), 숫자, 특수문자 중 2가지 이상 조합(8~20자)<br>
+									</span>
+									<span id="secondFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>4개이상 연속되거나 동일한 문자/숫자 제외<br>
+									</span>
+									<span id="thirdFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>아이디 제외
+									</span>
+								</p>
+								<!-- //사용불가 비밀번호일경우 -->
+								<!-- 사용가능한 비밀번호일경우 -->
+								<p id="avlPwd" class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>사용 가능한 비밀번호입니다
+									</span>
+								</p>
+								<!-- //사용가능한 비밀번호일경우 -->
+							</div>
+							<!-- //case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+						</div>
+					</div>
+					<!-- //오류시 부모 div에서 제어 -->
+					<div class="form_field">
+						<label class="input_label sr-only">비밀번호 확인</label>
+						<div class="input_wrap form_full">
+							<input type="password" id="confirmPassword" name="confirmPassword" placeholder="비밀번호 확인" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="비밀번호"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+							<div class="help_block">
+								<!-- 비밀번호확인 틀렸을경우 -->
+								<p id="misPwd" class="t_err hide">
+									비밀번호가 일치하지 않습니다.
+								</p>
+								<!-- //비밀번호확인 틀렸을경우 -->
+								<!-- 비밀번호 일치할경우 -->
+								<p id="avlConPwd"  class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>비밀번호가 일치합니다.
+									</span>
+								</p>
+								<!-- //비밀번호 일치할경우 -->
+							</div>
+							<!-- //case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">이메일</label>
+						<div class="input_wrap form_full">
+							<input type="text" id="email" name="email" placeholder="이메일" class="form_control" required="required" data-valid-name="이메일" maxlength="30"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (이메일 형식이 바르지않을경우,이미 가입되어있는 이메일인경우) -->
+							<div class="help_block">
+								<!-- 이메일 형식이 바르지않을경우 -->
+								<p id="failEmail" class="t_err hide">
+									이메일 형식이 올바르지 않습니다.
+								</p>
+								<!-- //이메일 형식이 바르지않을경우 -->
+								<!-- 이미 가입되어있는 이메일인경우 -->
+								<p id="dupEmail" class="t_err hide">
+									이미 가입된 이메일 주소입니다. 다른 이메일 주소를 입력하여 주세요.
+								</p>
+								<div id="dupEmailDiv" class="mt20 hide">
+									<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_LOGIN);">
+										<span>로그인</span>
+									</button>
+									<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_CUSTOMER_ID_FIND);">
+										<span>아이디 찾기</span>
+									</button>
+								</div>
+								<!-- //이미 가입되어있는 이메일인경우 -->
+							</div>
+							<!-- //case (이메일 형식이 바르지않을경우,이미 가입되어있는 이메일인경우) -->
+						</div>
+					</div>
+					<!-- 210415_수정 : 휴대폰 인증 수정 -->
+					<div class="form_field">
+						<label class="input_label sr-only">휴대폰번호</label>
+						<!-- 휴대폰 인증 입력 전 -->
+						<div class="input_wrap form_full">
+							<input type="text" id="cellPhnno" name="cellPhnno" placeholder="휴대폰 인증 해주세요." class="form_control" minlength="10" maxlength="11" required="required" data-valid-type="numeric" data-valid-name="휴대폰" readonly="readonly"/>
+							<button type="button" id="btnCellPhoneCertify" class="btn btn_dark btn_hp_certi">
+								<span>본인인증</span>
+							</button>
+						</div>
+						<!-- //휴대폰 인증 입력 전 -->
+
+						<!-- case (휴대폰번호 형식이 맞지 않을경우,이미 가입되어있는 핸드폰번호일경우) -->
+						<div class="help_block">
+							<p id="failPhnno" class="t_err hide">휴대폰번호를 형식에 맞게 정확히 입력해주세요</p>
+							<p id="dupPhnno" class="t_err hide">I***D로 가입된 핸드폰 번호 입니다.</p>
+							<div id="dupPhnnoDiv" class="mt20 hide">
+								<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_LOGIN);">
+									<span>로그인</span>
+								</button>
+								<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_CUSTOMER_ID_FIND);">
+									<span>아이디 찾기</span>
+								</button>
+							</div>
+						</div>
+					</div>
+					<div class="btn_group_flex">
+						<div>
+							<button type="button" id="btnJoin" class="btn btn_primary btn_block" disabled="disabled">
+								<span>동의하고 가입하기</span>
+							</button>
+						</div>
+					</div>
+					<!-- //210415_수정 : 버튼 형식 변경. -->
+					<div class="desc_wrap t_c mt20">
+						<p>
+							본인은&nbsp;만 14세 이상이며&nbsp;<a href="javascript:void(0)" onclick="cfnUseTermsLayer();">STYLE24이용약관<i class="ico ico_blank ml5"></i></a>,<br>
+							<a href="javascript:void(0)" onclick="cfnPrivacyPolicyLayer();">개인정보 수집 및 이용<i class="ico ico_blank ml5"></i></a>,
+							<a href="javascript:void(0)" onclick="cfnPrivacyTrustLayer();">개인정보 취급 위탁<i class="ico ico_blank ml5"></i></a><br>
+							내용을 확인 하였으며,동의합니다.
+						</p>
+					</div>
+				</form>
+		</div>
+
+	</section>
+	<!-- ★ 컨텐츠 종료 -->
+</main>
+
+<script th:src="@{'/biz/customer.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/customer.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+let custIdCheck = false;
+	let passwdCheck = false;
+	let emailCheck = false;
+	let authCheck = false;
+
+	// 아이디 확인
+	$('#custId').on('blur', function () {
+		let custId = $(this).val();
+		if(!gagajf.isNull(custId)) {
+			if (custId.length > 3) {
+				let custInfo = {};
+				custInfo.custId = custId;
+				let jsonData = JSON.stringify(custInfo);
+				gagajf.ajaxJsonSubmit('/customer/join/id/check', jsonData, fnIdConfirmCallBack);
+			}
+		}
+	});
+
+	// 아이디 결과
+	var fnIdConfirmCallBack = function (result) {
+		const $dupCustIdDiv = $('#dupCustIdDiv');
+		const $custId = $('#custId');
+		const $usable = $('span > .usable');
+
+		if (result.isFind) { // 중복된 아이디가 존재
+			$custId.addClass('err');
+			$custId.removeClass('usable');
+			$dupCustIdDiv.show();
+			$usable.hide();
+			custIdCheck = false;
+		} else {
+			$custId.removeClass('err');
+			$custId.addClass('usable');
+			$dupCustIdDiv.hide();
+			$usable.show();
+			custIdCheck = true;
+		}
+		fnPossibleJoin();
+	};
+
+	// 비밀번호 입력
+	$('#joinForm input[name=passwd]').on('focusout keyup keydown', function () {
+		fnCheckPassword();
+	});
+
+	// 비밀번호 확인 입력
+	$('#joinForm input[name=confirmPassword]').on('focusout keyup keydown', function () {
+		fnCheckConfirmPassword();
+	});
+
+	// 비밀번호 확인
+	var fnCheckPassword = function () {
+		const $firstFailed = $('#firstFailed');
+		const $secondFailed = $('#secondFailed');
+		const $thirdFailed = $('#thirdFailed');
+		const $avlPwd = $('#avlPwd');
+		const red = 'c_red2';
+		const gray = 'c_gray';
+
+		let custId = $('#joinForm input[name=custId]').val();
+		let password = $('#joinForm input[name=passwd]').val();
+		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
+		let pwdCheck = true;
+
+
+		// 영문, 숫자, 특수문자 2종 이상 혼용 || 길이
+		if (fnValidtaionPwdMixedWord(password) || fnValidationPwdLength(password)) {
+			pwdCheck = false;
+			$firstFailed.removeClass(gray);
+			$firstFailed.addClass(red);
+		} else {
+			$firstFailed.removeClass(red);
+			$firstFailed.addClass(gray);
+		}
+
+		// 동일한 문자/숫자 4자이상 || 연속된 문자가 4자이상
+		if (fnValidationPwdSameWord(password) || fnValidtaionPwdCntnsWord(password)) {
+			pwdCheck = false;
+			$secondFailed.removeClass(gray);
+			$secondFailed.addClass(red);
+		} else {
+			$secondFailed.removeClass(red);
+			$secondFailed.addClass(gray);
+		}
+
+		// 아이디 포함
+		if (!gagajf.isNull(custId)) {
+			if (fnValidationPwdSameId(password, custId)) {
+				pwdCheck = false;
+				$thirdFailed.removeClass(gray);
+				$thirdFailed.addClass(red);
+			} else {
+				$thirdFailed.removeClass(red);
+				$thirdFailed.addClass(gray);
+			}
+		}
+
+		if (pwdCheck) {
+			$firstFailed.hide();
+			$secondFailed.hide();
+			$thirdFailed.hide();
+			$avlPwd.show();
+		} else {
+			$firstFailed.show();
+			$secondFailed.show();
+			$thirdFailed.show();
+			$avlPwd.hide();
+		}
+
+		if (!gagajf.isNull(confirmPassword)) {
+			fnCheckConfirmPassword();
+		}
+
+	};
+
+	// 비밀번호 확인
+	var fnCheckConfirmPassword = function () {
+		const $misPwd = $('#misPwd');
+		const $avlConPwd = $('#avlConPwd');
+		let password = $('#joinForm input[name=passwd]').val();
+		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+
+		if (sameConfirmPwd) {
+			$avlConPwd.show();
+			$misPwd.hide()
+			passwdCheck = true;
+		} else {
+			$misPwd.show();
+			$avlConPwd.hide();
+			passwdCheck = false;
+		}
+		fnPossibleJoin();
+
+	};
+
+	//	이메일 확인
+	$('#email').on('blur', function () {
+		const $failEmail = $('#failEmail');
+		let email = $(this).val();
+		let validation;
+
+		if(!gagajf.isNull(email)) {
+			if (!fnCheckValidationEmail(email)) {
+				$failEmail.show();
+				emailCheck = false;
+				validation = false;
+			} else {
+				validation = true;
+				$failEmail.hide();
+			}
+			if (validation) {
+				let custInfo = {};
+				custInfo.email = email;
+				let jsonData = JSON.stringify(custInfo);
+				gagajf.ajaxJsonSubmit('/customer/email/check', jsonData, fnEmailConfirmCallBack);
+			}
+		}
+	});
+
+	// 이메일 확인 결과
+	var fnEmailConfirmCallBack = function (result) {
+		const $dupEmail = $('#dupEmail');
+		const $dupEmailDiv = $('#dupEmailDiv');
+		if (result.isFind) { // 중복된 아이디가 존재
+			$dupEmail.show();
+			$dupEmailDiv.show();
+			emailCheck = false;
+		} else {
+			$dupEmail.hide();
+			$dupEmailDiv.hide();
+			emailCheck = true;
+		}
+		fnPossibleJoin();
+	};
+
+	//휴대폰 인증
+	$('#btnCellPhoneCertify').on('click', function () {
+		cfnOpenCellphoneCertify();
+	});
+
+	// 나이스 본인인증 후 콜백
+	var fnNiceCallBack = function(encData) {
+		if (!gagajf.isNull(encData)) {
+			let custInfo = {};
+			custInfo.encData = encData;
+			let jsonData = JSON.stringify(custInfo);
+			gagajf.ajaxJsonSubmit('/customer/authentication/check', jsonData, fnInfoConfirmCallBack);
+		}
+	};
+
+	// 본인인증 후 결과
+	var fnInfoConfirmCallBack = function (result) {
+		const $cellPhnno = $('#cellPhnno');
+		const $dupPhnno = $('#dupPhnno');
+		const $dupPhnnoDiv = $('#dupPhnnoDiv');
+		const $btnCellPhoneCertify = $('#btnCellPhoneCertify');
+		$cellPhnno.val(result.cellPhnno);
+
+		if (result.isFind) { // 가입된 고객 정보가 있으면
+			let msg = '';
+			if (result.custStat === 'G104_30') {
+				msg = "탈퇴한 회원입니다. 탈퇴 후 60일 동안 재가입이 불가능합니다.";
+			} else {
+				msg = result.maskingCustId+"로 가입된 이력이 있습니다.";
+			}
+			$dupPhnno.html(msg);
+			$dupPhnno.show();
+			$dupPhnnoDiv.show();
+			authCheck = false;
+		} else {
+			$dupPhnno.hide();
+			$dupPhnnoDiv.hide();
+			authCheck = true;
+		}
+		$btnCellPhoneCertify.find('span').text('인증완료');
+		$btnCellPhoneCertify.attr('disabled', true);
+		fnPossibleJoin();
+	};
+
+	// 저장
+	$('#btnJoin').on('click', function () {
+		mcxDialog.confirm("회원가입을 하시겠습니까?", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				$('#btnJoin').attr('disabled', true);
+				let jsonData = JSON.stringify($('#joinForm').serializeObject());
+				gagajf.ajaxJsonSubmit('/customer/join/save', jsonData, fnJoinSaveCallback);
+			}
+		});
+	});
+
+	var fnJoinSaveCallback = function (result) {
+		cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
+	};
+
+
+	// 가입 가능한지 확인
+	var fnPossibleJoin = function () {
+		const $btnJoin = $('#btnJoin');
+		if (custIdCheck && passwdCheck && emailCheck && authCheck ) {
+			$btnJoin.attr('disabled', false);
+		} else {
+			$btnJoin.attr('disabled', true);
+		}
+	};
+	/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 45 - 46
src/main/webapp/WEB-INF/views/mob/customer/JoinTypeFormMob.html

@@ -19,55 +19,54 @@
 
 <body>
 <th:block layout:fragment="content">
-	<main class="container mb">
-		<!-- ★ 컨텐츠 시작 -->
-		<section class="content mb_join_1">
-			<div class="inner">
-				<div class="close">
-					<a href="javascript:void(0);" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
-				</div>
-			</div>
-			<div class="inner">
-				<h2 class="title">회원가입</h2>
+<main class="container mb">
+	<!-- ★ 컨텐츠 시작 -->
+	<section class="content mb_join_1">
+		<div class="inner">
+			<div class="close">
+				<a href="javascript:void(0);" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
 			</div>
-			<div class="inner">
-					<form class="form_wrap form_full" role="form">
-						<div class="form_head">
-							<h3 class="title sr-only">본인인증</h3>
-						</div>
-						<div class="form_sign_up">
-							<p class="c_primary t_c">STYLE24 회원으로 가입</p>
-							<p class="t_c mt10">신규 가입 시 할인 쿠폰 등<br> 다양한 혜택을 받으실 수 있습니다.</p>
-						</div>
-					   <div class="ui_row mt20">
-						   <button type="button" class="btn btn_primary" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN);">회원가입</button>
-					   </div>
-					</form>
-					<div class="t_c sns_wrap">
-						<h3 class="sr-only">간편로그인</h3>
-						<ul class="login_utill">
-							<li class="lu_kakao">
-								<a href="javascript:void(0);" onclick="cfnLoginKakao();">
-									<div class="ico"></div>카카오로<br>시작하기
-								</a>
-							</li>
-							<li class="lu_naver">
-								<a href="javascript:void(0);" onclick="cfnLoginNaver();">
-									<div class="ico"></div>네이버로<br>시작하기
-								</a>
-							</li>
-							<li class="lu_yes24">
-								<a href="javascript:void(0);" onclick="cfnLoginYes24();">
-									<div class="ico"></div>YES24로<br>시작하기
-								</a>
-							</li>
-						</ul>
+		</div>
+		<div class="inner">
+			<h2 class="title">회원가입</h2>
+		</div>
+		<div class="inner">
+				<form class="form_wrap form_full" role="form">
+					<div class="form_head">
+						<h3 class="title sr-only">본인인증</h3>
 					</div>
-			</div>
-
-		</section>
-		<!-- ★ 컨텐츠 종료 -->
+					<div class="form_sign_up">
+						<p class="c_primary t_c">STYLE24 회원으로 가입</p>
+						<p class="t_c mt10">신규 가입 시 할인 쿠폰 등<br> 다양한 혜택을 받으실 수 있습니다.</p>
+					</div>
+				   <div class="ui_row mt20">
+					   <button type="button" class="btn btn_primary" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN);">회원가입</button>
+				   </div>
+				</form>
+				<div class="t_c sns_wrap">
+					<h3 class="sr-only">간편로그인</h3>
+					<ul class="login_utill">
+						<li class="lu_kakao">
+							<a href="javascript:void(0);" onclick="cfnLoginKakao();">
+								<div class="ico"></div>카카오로<br>시작하기
+							</a>
+						</li>
+						<li class="lu_naver">
+							<a href="javascript:void(0);" onclick="cfnLoginNaver();">
+								<div class="ico"></div>네이버로<br>시작하기
+							</a>
+						</li>
+						<li class="lu_yes24">
+							<a href="javascript:void(0);" onclick="cfnLoginYes24();">
+								<div class="ico"></div>YES24로<br>시작하기
+							</a>
+						</li>
+					</ul>
+				</div>
+		</div>
 
+	</section>
+	<!-- ★ 컨텐츠 종료 -->
 </main>
 
 <script th:inline="javascript">

+ 15 - 1
src/main/webapp/WEB-INF/views/mob/customer/PasswordFindFormMob.html

@@ -140,7 +140,7 @@
                                 </button>
                             </div>
                             <div class="ui_col_6">
-                                <button type="button" class="btn btn_dark" onclick="cfnGoToPage(_PAGE_CUSTOMER_ID_FIND);">
+                                <button type="button" class="btn btn_dark" onclick="cfnGoToPage(_PAGE_CUSTOMER_PWD_FIND);">
                                     <span>다시 찾기</span>
                                 </button>
                             </div>
@@ -242,6 +242,20 @@
         }
     };
 
+
+	// 찾기실패
+	var fnGetDisplayFail = function (authMethod) {
+		$('.form_head').hide();
+		$('.registration_nav').hide();
+		if (authMethod === 'custInfo') {
+			$('#failCustId').show();
+		}
+		if (authMethod === 'mobile' || authMethod === 'ipin') {
+			$('#failAuthentication').show();
+		}
+
+	};
+
     // 나이스 본인인증 후 콜백
     var fnNiceCallBack = function(encData, authMethod) {
         if (!gagajf.isNull(encData)) {

+ 1 - 1
src/main/webapp/WEB-INF/views/web/customer/ConsentUseInfoFormWeb.html

@@ -26,7 +26,7 @@
 					<p>계정 연동 시, STYLE24 휴면계정은 휴면해제 후 이용 가능합니다.</p>
 					<div class="info_txt">
 						<ul>
-							<li>“<span class="mb_name">회원명</span>” 님의 <em>CI, 이름, 성별, 생년월일, 핸드폰번호, 이메일 정보</em>를 로그인 연동을 위해 아이스타일24에 제공합니다.</li>
+							<li>“<span class="mb_name" th:text="${custNm}">회원명</span>” 님의 <em>CI, 이름, 성별, 생년월일, 핸드폰번호, 이메일 정보</em>를 로그인 연동을 위해 아이스타일24에 제공합니다.</li>
 							<li>정보제공 동의 시 YES24 계정으로 로그인 가능하며, 간편하게 회원가입이 가능합니다.</li>
 						</ul>
 					</div>

+ 1 - 1
src/main/webapp/ux/mo/css/common_m.css

@@ -1997,7 +1997,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 .app-only .guidance:after{content: '';position: absolute;top: 0;bottom: 15px;left: 10px;width: 100%;height: 100%;z-index: -1;}
 .app-only .guidance{
     box-shadow: 0 0px 30px rgb(0 0 0 / 20%), 0 0px 30px rgb(0 0 0 / 20%);
-	/* 마스크 미사용 
+	/* 마스크 미사용
 	mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white), linear-gradient(white, white);
     -webkit-mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white), linear-gradient(white, white);
 	mask-size: 100% 0%, 2vh 2vh, calc(100% - 1.9vh) 100%, 100% calc(100% - 1.9vh);