| import { NextRequest, NextResponse } from 'next/server'; | |
| import { getCookieToken, deleteSession, SESSION_COOKIE_NAME } from '@/lib/auth'; | |
| export async function POST(request: NextRequest) { | |
| try { | |
| const token = getCookieToken(request); | |
| if (token) { | |
| await deleteSession(token); | |
| } | |
| // ── Determine if behind HTTPS proxy ─────────────────────────────── | |
| const forwardedProto = request.headers.get('x-forwarded-proto'); | |
| const isSecure = forwardedProto === 'https' || process.env.NODE_ENV === 'production'; | |
| const response = NextResponse.json({ success: true }); | |
| response.cookies.set(SESSION_COOKIE_NAME, '', { | |
| httpOnly: true, | |
| secure: isSecure, | |
| sameSite: 'lax', | |
| path: '/', | |
| maxAge: 0, | |
| }); | |
| return response; | |
| } catch (error) { | |
| console.error('[LOGOUT_ERROR]', error); | |
| return NextResponse.json( | |
| { error: 'Internal server error' }, | |
| { status: 500 } | |
| ); | |
| } | |
| } |