summaryrefslogtreecommitdiff
path: root/lib/users
diff options
context:
space:
mode:
Diffstat (limited to 'lib/users')
-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: '전화번호 형식이 올바르지 않습니다' };
}