Files
Projektarbeit-MYP/frontend/src/server/actions/authentication/logout.ts

30 lines
662 B
TypeScript

"use server";
import { lucia, validateRequest } from "@/server/auth";
import strings from "@/utils/strings";
import { revalidatePath } from "next/cache";
import { cookies } from "next/headers";
export async function logout(path?: string) {
const { session } = await validateRequest();
if (!session) {
return {
error: strings.ERROR.NO_SESSION,
};
}
try {
await lucia.invalidateSession(session.id);
} catch (error) {
return {
error: strings.ERROR.NO_SESSION,
};
}
const sessionCookie = lucia.createBlankSessionCookie();
cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes);
revalidatePath(path ?? "/");
}