28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { NextResponse } from 'next/server';
|
|
import { cookies } from 'next/headers';
|
|
import {
|
|
CUSTOMER_SESSION_COOKIE,
|
|
getClearedCustomerSessionCookieOptions,
|
|
} from '@/infrastructure/auth/customer-session';
|
|
import {
|
|
ADMIN_SESSION_COOKIE,
|
|
getAdminSessionCookieOptions,
|
|
} from '@/infrastructure/auth/admin-session';
|
|
|
|
export async function POST() {
|
|
const cookieStore = await cookies();
|
|
const clearedCustomer = getClearedCustomerSessionCookieOptions();
|
|
const clearedAdmin = { ...getAdminSessionCookieOptions(), maxAge: 0, expires: new Date(0) };
|
|
|
|
cookieStore.set(CUSTOMER_SESSION_COOKIE, '', clearedCustomer);
|
|
cookieStore.delete({ name: CUSTOMER_SESSION_COOKIE, path: '/' });
|
|
|
|
cookieStore.set(ADMIN_SESSION_COOKIE, '', clearedAdmin);
|
|
cookieStore.delete({ name: ADMIN_SESSION_COOKIE, path: '/' });
|
|
|
|
const response = NextResponse.json({ ok: true });
|
|
response.cookies.set(CUSTOMER_SESSION_COOKIE, '', clearedCustomer);
|
|
response.cookies.set(ADMIN_SESSION_COOKIE, '', clearedAdmin);
|
|
response.headers.set('Cache-Control', 'no-store');
|
|
return response;
|
|
} |