export const ADMIN_COOKIE = "admin_session"; export const SESSION_MAX_AGE = 60 * 60 * 12; function attributes(isHttps: boolean, maxAge: number) { const parts = [`Path=/`, `Max-Age=${maxAge}`, "HttpOnly"]; if (isHttps) { parts.push("Secure", "SameSite=None", "Partitioned"); } else { parts.push("SameSite=Lax"); } return parts.join("; "); } export function setAdminSessionCookie(headers: Headers, value: string, isHttps: boolean) { headers.append( "set-cookie", `${ADMIN_COOKIE}=${encodeURIComponent(value)}; ${attributes(isHttps, SESSION_MAX_AGE)}` ); } export function clearAdminSessionCookie(headers: Headers, isHttps: boolean) { headers.append("set-cookie", `${ADMIN_COOKIE}=; ${attributes(isHttps, 0)}`); }