27 lines
778 B
TypeScript
27 lines
778 B
TypeScript
import { cookies } from "next/headers";
|
|
import { NextResponse } from "next/server";
|
|
import { ACCESS_COOKIE, REFRESH_COOKIE, sharedAuthCookieNames, WEBSITE_DOMAIN } from "@/lib/auth";
|
|
|
|
export async function POST(request: Request) {
|
|
const cookieStore = await cookies();
|
|
const names = new Set([
|
|
ACCESS_COOKIE,
|
|
REFRESH_COOKIE,
|
|
...sharedAuthCookieNames(cookieStore),
|
|
]);
|
|
const response = NextResponse.redirect(new URL("/", request.url), 303);
|
|
|
|
for (const name of names) {
|
|
response.cookies.set({ name, value: "", maxAge: 0, path: "/", sameSite: "lax" });
|
|
}
|
|
|
|
for (const name of names) {
|
|
response.headers.append(
|
|
"Set-Cookie",
|
|
`${name}=; Max-Age=0; Path=/; Domain=.${WEBSITE_DOMAIN}; SameSite=Lax; Secure`,
|
|
);
|
|
}
|
|
|
|
return response;
|
|
}
|