diff --git a/backend/src/app/api/auth/logout/route.ts b/backend/src/app/api/auth/logout/route.ts new file mode 100644 index 0000000..54b9837 --- /dev/null +++ b/backend/src/app/api/auth/logout/route.ts @@ -0,0 +1,18 @@ +import { auth } from "@/lib/auth"; +import { prisma } from "@/lib/prisma"; +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + const session = await auth(); + + if (session) { + await prisma.session.deleteMany({ + where: { userId: Number(session?.user?.id) }, + }); + } + + const response = NextResponse.redirect(process.env.NEXT_PUBLIC_FRONTEND_URL ?? "http://localhost:3000"); + response.cookies.delete("next-auth.session-token"); + response.cookies.delete("__Secure-next-auth.session-token"); + return response; +} diff --git a/frontend/src/components/header.tsx b/frontend/src/components/header.tsx index 9da9bb4..50b82f8 100644 --- a/frontend/src/components/header.tsx +++ b/frontend/src/components/header.tsx @@ -90,7 +90,7 @@ export default function Header() {
  • { if (!res.ok) throw new Error("Failed to fetch profile"); return res.json();