import type { SessionData } from '@/types/Auth' import { cookies } from 'next/headers' import { NextResponse } from 'next/server' import { getIronSession } from 'iron-session' import { axiosInstance } from '@/libs/axios' import { sessionOptions } from '@/libs/session' import { tracking } from '@/libs/tracking' export async function POST(request: Request) { const cookieStore = await cookies() const session = await getIronSession(cookieStore, sessionOptions) const headers: Record = { referer: process.env.NEXT_PUBLIC_QSP_API_REFERER || '', } console.log('🚀 ~ logout POST ~ loginId:', session.userId, 'sessionId:', session.sessionId) try { const result = await axiosInstance(`${process.env.NEXT_PUBLIC_QSP_API_URL}`, headers).post(`/api/user/logout`, { loginId: session.userId, accsSiteCd: 'QREAD', actLog: 'LOGOUT', requestId: session.sessionId, }) console.log('🚀 ~ logout POST ~ result:', result.data) } catch (e) { console.error('🚀 ~ logout POST ~ error:', e) } tracking({ url: '/api/auth/logout', data: JSON.stringify({ loginId: session.userId }), }) session.destroy() console.log('🚀 ~ logout POST ~ session destroyed') return NextResponse.json({ code: 200, message: 'Logout successful' }) } export async function GET(request: Request) { const cookieStore = await cookies() const session = await getIronSession(cookieStore, sessionOptions) console.log('🚀 ~ logout GET ~ userId:', session.userId) tracking({ url: '/api/auth/logout', data: JSON.stringify({ userId: session.userId }), }) session.destroy() console.log('🚀 ~ logout GET ~ session destroyed') return NextResponse.json({ code: 200, message: 'Logout successful' }) }