26 lines
546 B
TypeScript
26 lines
546 B
TypeScript
|
'use server';
|
||
|
|
||
|
import { cookies } from 'next/headers';
|
||
|
import { redirect } from 'next/navigation';
|
||
|
import { lucia } from '@/lib/lucia';
|
||
|
import { getAuth } from '../queries/getauth';
|
||
|
|
||
|
export const signOut = async (_formData: FormData) => {
|
||
|
const { session } = await getAuth();
|
||
|
|
||
|
if (!session) {
|
||
|
redirect('/');
|
||
|
}
|
||
|
|
||
|
await lucia.invalidateSession(session.id);
|
||
|
|
||
|
const sessionCookie = lucia.createBlankSessionCookie();
|
||
|
|
||
|
cookies().set(
|
||
|
sessionCookie.name,
|
||
|
sessionCookie.value,
|
||
|
sessionCookie.attributes
|
||
|
);
|
||
|
|
||
|
redirect('/');
|
||
|
};
|