Personal no-bs blogging platform.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940import { Hono, type Context } from "hono";import { getCookie, setCookie, deleteCookie } from "hono/cookie";import { DOMAIN, SESSION_TOKEN_DURATION } from "./constants";
import * as db from "@/db/db.ts";import type { Session } from "./types";
/** * Creates a session and stores it in a cookie. * @param c Pass this from the route. * @param user_id User's ID to create a session and cookie for. * @returns {Session} The session */export async function new_session_cookie(c: Context, user_id: number): Promise<Session> { const session = await db.create_session(user_id);
setCookie(c, "session", session.token, { httpOnly: true, secure: true, sameSite: "Lax", maxAge: SESSION_TOKEN_DURATION, path: "/", domain: "." + DOMAIN, });
return session;};
/** * Deletes a session and its cookie. * @param c Context. */export async function remove_session_cookie(c: Context) { const cookie = getCookie(c, "session"); deleteCookie(c, "session", { path: "/", domain: "." + DOMAIN, }); if (cookie) db.delete_session(cookie);}