import { getClientIp } from '../../utils/ip' import { createSession, setSessionCookie } from '../../utils/session' interface SelectUserBody { employeeId: number } /** * 기존 사용자 선택 로그인 * POST /api/auth/select-user */ export default defineEventHandler(async (event) => { const body = await readBody(event) const clientIp = getClientIp(event) const userAgent = getHeader(event, 'user-agent') || null if (!body.employeeId) { throw createError({ statusCode: 400, message: '사용자를 선택해주세요.' }) } // 사원 조회 const employee = await queryOne(` SELECT * FROM wr_employee_info WHERE employee_id = $1 AND is_active = true `, [body.employeeId]) if (!employee) { throw createError({ statusCode: 404, message: '사용자를 찾을 수 없습니다.' }) } // 로그인 이력 추가 const loginHistory = await insertReturning(` INSERT INTO wr_login_history (employee_id, login_ip, login_email) VALUES ($1, $2, $3) RETURNING history_id `, [employee.employee_id, clientIp, employee.employee_email]) // DB 기반 세션 생성 const sessionId = await createSession( employee.employee_id, loginHistory.history_id, clientIp, userAgent ) // 세션 쿠키 설정 setSessionCookie(event, sessionId) return { success: true, user: { employeeId: employee.employee_id, employeeName: employee.employee_name, employeeEmail: employee.employee_email, employeePosition: employee.employee_position } } })