Files
weeklyreport/backend/api/auth/me.get.ts

61 lines
1.6 KiB
TypeScript

import { getDbSession, getSessionIdFromCookie, deleteSessionCookie } from '../../utils/session'
/**
* 로그인된 사용자 상세 정보 조회
* GET /api/auth/me
*/
export default defineEventHandler(async (event) => {
const sessionId = getSessionIdFromCookie(event)
if (!sessionId) {
throw createError({ statusCode: 401, message: '로그인이 필요합니다.' })
}
// DB에서 세션 조회
const session = await getDbSession(sessionId)
if (!session) {
deleteSessionCookie(event)
throw createError({ statusCode: 401, message: '세션이 만료되었습니다. 다시 로그인해주세요.' })
}
const employee = await queryOne<any>(`
SELECT
employee_id,
employee_name,
employee_email,
employee_phone,
employee_position,
company,
join_date,
is_active,
created_at,
created_ip,
updated_at,
updated_ip
FROM wr_employee_info
WHERE employee_id = $1
`, [session.employeeId])
if (!employee) {
throw createError({ statusCode: 404, message: '사용자를 찾을 수 없습니다.' })
}
return {
user: {
employeeId: employee.employee_id,
employeeName: employee.employee_name,
employeeEmail: employee.employee_email,
employeePhone: employee.employee_phone,
employeePosition: employee.employee_position,
company: employee.company,
joinDate: employee.join_date,
isActive: employee.is_active,
createdAt: employee.created_at,
createdIp: employee.created_ip,
updatedAt: employee.updated_at,
updatedIp: employee.updated_ip
}
}
})