summaryrefslogtreecommitdiff
path: root/lib/users/auth/passwordUtil.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-09-09 02:35:11 +0000
committerjoonhoekim <26rote@gmail.com>2025-09-09 02:35:11 +0000
commit61fd1ff7162390f9ec2480da74840e58bb0b6ebd (patch)
tree80a3a1802cfa1541a91e0570f406e1ab57dfb84e /lib/users/auth/passwordUtil.ts
parent345a1bfaa30b71ffc82828245408663d7edfd0d2 (diff)
(김준회) SMS 발송 전화번호에 대해 공백 제거 처리
Diffstat (limited to 'lib/users/auth/passwordUtil.ts')
-rw-r--r--lib/users/auth/passwordUtil.ts21
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: '전화번호 형식이 올바르지 않습니다' };
}