import { query, insertReturning, execute } from '../../utils/db' interface LoginBody { email: string name: string } /** * 이메일+이름 로그인 (임시) * POST /api/auth/login */ export default defineEventHandler(async (event) => { const body = await readBody(event) if (!body.email || !body.name) { throw createError({ statusCode: 400, message: '이메일과 이름을 입력해주세요.' }) } // 이메일 형식 검증 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ if (!emailRegex.test(body.email)) { throw createError({ statusCode: 400, message: '올바른 이메일 형식이 아닙니다.' }) } // 기존 사원 조회 let employee = await query(` SELECT * FROM wr_employee_info WHERE employee_email = $1 `, [body.email.toLowerCase()]) let employeeData = employee[0] // 없으면 자동 등록 if (!employeeData) { employeeData = await insertReturning(` INSERT INTO wr_employee_info (employee_name, employee_email) VALUES ($1, $2) RETURNING * `, [body.name, body.email.toLowerCase()]) } // 로그인 이력 추가 await execute(` INSERT INTO wr_login_history (employee_id) VALUES ($1) `, [employeeData.employee_id]) // 쿠키에 사용자 정보 저장 (간단한 임시 세션) setCookie(event, 'user_id', String(employeeData.employee_id), { httpOnly: true, maxAge: 60 * 60 * 24 * 7, // 7일 path: '/' }) return { success: true, user: { employeeId: employeeData.employee_id, employeeName: employeeData.employee_name, employeeEmail: employeeData.employee_email, employeePosition: employeeData.employee_position } } })