1
0
cvsa/packages/backend/routes/auth/logout.ts

51 lines
951 B
TypeScript

import { Elysia, t } from "elysia";
import { deactivateSession } from "@elysia/lib/auth";
export const logoutHandler = new Elysia({ prefix: "/auth" })
.delete(
"/session",
async ({ set, cookie }) => {
const sessionId = cookie.sessionId?.value;
if (!sessionId) {
set.status = 401;
return { message: "Not authenticated." };
}
await deactivateSession(sessionId as string);
cookie.sessionId.remove();
return { message: "Successfully logged out." };
},
{
response: {
200: t.Object({
message: t.String()
}),
401: t.Object({
message: t.String()
})
}
}
)
.delete(
"/session/:id",
async ({ params }) => {
const sessionId = params.id;
await deactivateSession(sessionId as string);
return { message: "Successfully logged out." };
},
{
response: {
200: t.Object({
message: t.String()
}),
401: t.Object({
message: t.String()
})
}
}
);