import { NextRequest } from 'next/server'; import { redirect } from 'next/navigation'; import { Auth_tinyauth_endpoint, Auth_tinyauth_public_endpoint } from '@/lib/auth_shared'; export async function POST(request: NextRequest) { try { // Get the current session cookie const cookies = request.cookies.getAll(); const sessionCookie = cookies.find(cookie => cookie.name.includes('tinyauth-session')); if (sessionCookie) { // Call tinyauth logout endpoint to invalidate the session await fetch(`${Auth_tinyauth_endpoint()}/auth/logout`, { method: 'POST', headers: { 'Cookie': `${sessionCookie.name}=${sessionCookie.value}` } }); // Note: We don't need to check the response status as we'll redirect anyway } // Redirect to the public logout endpoint which should clear cookies client-side const publicLogoutUrl = `${Auth_tinyauth_public_endpoint()}/auth/logout`; return Response.redirect(publicLogoutUrl, 302); } catch (error) { console.error('Logout error:', error); // Even if logout fails, redirect to home return redirect('/'); } }