import { deleteCookie, getCookies, setCookie } from "@std/http/cookie"; import { createDefine } from "fresh"; // This specifies the type of "ctx.state" which is used to share // data among middlewares, layouts and routes. export interface State { shared: string; } export const define = createDefine(); export function setAuthCookie( req: Request, headers: Headers, ) { const url = new URL(req.url); setCookie(headers, { name: "auth", value: "ok", maxAge: 60 * 60, sameSite: "Lax", domain: url.hostname, path: "/", secure: true, }); } export function unsetAuthCookie(headers: Headers) { deleteCookie(headers, "auth"); } export function isLoggedIn(req: Request): boolean { const cookies = getCookies(req.headers); const authCookie = cookies["auth"]; return authCookie === "ok"; }