diff --git a/WebContent/jsp/common/screen/emergency.jsp b/WebContent/jsp/common/screen/emergency.jsp
index b2eacc2..16ca022 100644
--- a/WebContent/jsp/common/screen/emergency.jsp
+++ b/WebContent/jsp/common/screen/emergency.jsp
@@ -65,6 +65,7 @@
// SMS 인증 관련 변수
var smsAuthTimer = null;
var resendTimer = null;
+ var smsAuthPurpose = 'LOGIN'; // 'LOGIN' | 'PASSWORD_CHANGE' - SMS 인증 모달을 어느 흐름에서 띄웠는지 구분
function fncPreMain() {
if ($("input[name=userId]").val() ==null || $("input[name=userId]").val().length == 0 ){
@@ -96,6 +97,7 @@
}
else if (response.smsAuthRequired) {
// SMS 인증 필요
+ smsAuthPurpose = 'LOGIN';
showSmsAuthModal(response);
} else if (response.success) {
// 직접 로그인 성공
@@ -123,11 +125,21 @@
function showSmsAuthModal(data) {
$('#smsAuthMaskedPhone').text(data.maskedPhone);
$('#smsAuthCode').val('');
+ updateSmsTestHint(data.smsTestHint);
startExpiryTimer(data.expiresAt);
startResendTimer(data.resendableAt);
$('#smsAuthModal').modal('show');
}
+ // fixed 모드(djb.sms_auth.mode=fixed)일 때만 서버가 내려주는 테스트용 인증번호 힌트 표시
+ function updateSmsTestHint(hint) {
+ if (hint) {
+ $('#smsAuthTestHint').text(hint).show();
+ } else {
+ $('#smsAuthTestHint').text('').hide();
+ }
+ }
+
// 유효시간 타이머
function startExpiryTimer(expiresAt) {
clearInterval(smsAuthTimer);
@@ -181,6 +193,7 @@
dataType: 'json',
success: function(data) {
if (data.sent) {
+ updateSmsTestHint(data.smsTestHint);
startExpiryTimer(data.expiresAt);
startResendTimer(data.resendableAt);
alert('인증번호가 재발송되었습니다.');
@@ -194,7 +207,7 @@
});
}
- // SMS 인증번호 확인
+ // SMS 인증번호 확인 (로그인 / 비밀번호 변경 공용 - smsAuthPurpose로 분기)
function verifySmsAuthCode() {
var code = $('#smsAuthCode').val();
if (!code || code.length !== 6) {
@@ -203,17 +216,25 @@
return;
}
+ var isPasswordChange = (smsAuthPurpose === 'PASSWORD_CHANGE');
+ var verifyUrl = isPasswordChange
+ ? '
남은 시간: 60초