feat: 비밀번호 찾기 휴대폰 번호 필수 입력으로 변경

- 휴대폰 번호 선택 → 필수 입력으로 변경
- 이메일: 양쪽 모두 소문자로 비교
- 핸드폰: 양쪽 모두 숫자만 추출하여 비교 (하이픈, 공백 등 제거)
This commit is contained in:
2026-01-11 22:05:46 +09:00
parent 12e2f18655
commit 4022ccf7e7
2 changed files with 18 additions and 17 deletions

View File

@@ -6,7 +6,7 @@ import { getClientIp } from '../../utils/ip'
interface ResetPasswordBody {
email: string
name: string
phone?: string
phone: string
}
/**
@@ -17,23 +17,24 @@ export default defineEventHandler(async (event) => {
const body = await readBody<ResetPasswordBody>(event)
const clientIp = getClientIp(event)
if (!body.email || !body.name) {
throw createError({ statusCode: 400, message: '이메일 이름 입력해주세요.' })
if (!body.email || !body.name || !body.phone) {
throw createError({ statusCode: 400, message: '이메일, 이름, 휴대폰 번호를 입력해주세요.' })
}
const emailLower = body.email.toLowerCase()
const nameTrimmed = body.name.trim()
// 사용자 조회 (이메일 + 이름)
let sql = `SELECT * FROM wr_employee_info WHERE employee_email = $1 AND employee_name = $2`
const params: any[] = [emailLower, nameTrimmed]
// 핸드폰 번호도 제공된 경우 추가 검증
if (body.phone) {
const phoneClean = body.phone.replace(/[^0-9]/g, '')
sql += ` AND REPLACE(employee_phone, '-', '') = $3`
params.push(phoneClean)
}
// 사용자 조회 (이메일 + 이름 + 핸드폰)
// 이메일: 양쪽 모두 소문자로 비교
// 핸드폰: 양쪽 모두 숫자만 추출해서 비교
const sql = `
SELECT * FROM wr_employee_info
WHERE LOWER(employee_email) = $1
AND employee_name = $2
AND REGEXP_REPLACE(employee_phone, '[^0-9]', '', 'g') = $3
`
const phoneClean = body.phone.replace(/[^0-9]/g, '')
const params: any[] = [emailLower, nameTrimmed, phoneClean]
const employees = await query<any>(sql, params)