diff options
| -rw-r--r-- | lib/users/auth/passwordUtil.ts | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/users/auth/passwordUtil.ts b/lib/users/auth/passwordUtil.ts index f9002240..0be9a652 100644 --- a/lib/users/auth/passwordUtil.ts +++ b/lib/users/auth/passwordUtil.ts @@ -325,14 +325,16 @@ function extractCountryInfo(phoneNumber: string): { country?: string; } | null { try { + // 앞뒤 공백 및 중간 공백 제거 + const cleanedPhone = phoneNumber.trim().replace(/\s+/g, ''); let parsed; // E.164 형식인지 확인 - if (phoneNumber.startsWith('+')) { - parsed = parsePhoneNumber(phoneNumber); + if (cleanedPhone.startsWith('+')) { + parsed = parsePhoneNumber(cleanedPhone); } else { // 국가 코드가 없으면 한국으로 가정 (기본값) - parsed = parsePhoneNumberFromString(phoneNumber, 'KR'); + parsed = parsePhoneNumberFromString(cleanedPhone, 'KR'); } if (!parsed || !isValidPhoneNumber(parsed.number)) { @@ -501,14 +503,16 @@ function getSmsMessage(phoneNumber: string, token: string): string { // 전화번호 정규화 (저장용) export function normalizePhoneNumber(phoneNumber: string, countryCode?: string): string | null { try { + // 앞뒤 공백 및 중간 공백 제거 + const cleanedPhone = phoneNumber.trim().replace(/\s+/g, ''); let parsed; if (countryCode) { // 국가 코드가 제공된 경우 - parsed = parsePhoneNumberFromString(phoneNumber, countryCode); + parsed = parsePhoneNumberFromString(cleanedPhone, countryCode); } else { // 국가 코드가 없는 경우 국제 형식으로 파싱 시도 - parsed = parsePhoneNumber(phoneNumber); + parsed = parsePhoneNumber(cleanedPhone); } if (!parsed || !isValidPhoneNumber(parsed.number)) { @@ -529,8 +533,11 @@ export async function generateAndSendSmsToken( phoneNumber: string ): Promise<{ success: boolean; error?: string }> { try { + // 앞뒤 공백 및 중간 공백 제거 + const cleanedPhone = phoneNumber.trim().replace(/\s+/g, ''); + // 전화번호 유효성 검사 - if (!isValidPhoneNumber(phoneNumber)) { + if (!isValidPhoneNumber(cleanedPhone)) { return { success: false, error: '유효하지 않은 전화번호입니다' }; } @@ -575,7 +582,7 @@ export async function generateAndSendSmsToken( expiresAt.setMinutes(expiresAt.getMinutes() + expiryMinutes); // 전화번호 정규화 (저장용) - const normalizedPhone = normalizePhoneNumber(phoneNumber); + const normalizedPhone = normalizePhoneNumber(cleanedPhone); if (!normalizedPhone) { return { success: false, error: '전화번호 형식이 올바르지 않습니다' }; } |
