Luminaria / frontend /lib /admin-session-cookie.ts
senlinyy's picture
fix: fix cookie
69698fb
Raw
History Blame Contribute Delete
747 Bytes
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)}`);
}