Files
weeklyreport/backend/api/auth/logout.post.ts

34 lines
864 B
TypeScript

import { getClientIp } from '../../utils/ip'
import { getSession, deleteSession, getSessionIdFromCookie, deleteSessionCookie } from '../../utils/session'
/**
* 로그아웃
* POST /api/auth/logout
*/
export default defineEventHandler(async (event) => {
const sessionId = getSessionIdFromCookie(event)
const clientIp = getClientIp(event)
if (sessionId) {
// 세션 정보 조회
const session = await getSession(sessionId)
// 로그아웃 이력 기록
if (session?.loginHistoryId) {
await execute(`
UPDATE wr_login_history
SET logout_at = NOW(), logout_ip = $1
WHERE history_id = $2
`, [clientIp, session.loginHistoryId])
}
// DB에서 세션 삭제
await deleteSession(sessionId)
}
// 세션 쿠키 삭제
deleteSessionCookie(event)
return { success: true }
})