Spaces:
Sleeping
Sleeping
| 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)}`); | |
| } | |