File size: 1,015 Bytes
e218aaf 89ea2aa e218aaf 89ea2aa e218aaf 89ea2aa e218aaf 09cd096 89ea2aa e218aaf 89ea2aa e218aaf 09cd096 e218aaf 89ea2aa e218aaf 89ea2aa e218aaf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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 }
);
}
} |