import { defineMiddleware } from 'astro:middleware'; const STATIC_PATHS = ['/_astro/', '/favicon.svg', '/favicon.ico']; const AUTH_BYPASS_PATHS = ['/gated-404']; export const onRequest = defineMiddleware(async (context, next) => { const { request, url } = context; // Bypass auth for static assets if (STATIC_PATHS.some((p) => url.pathname.startsWith(p))) { return next(); } // Bypass auth for gated pages to prevent redirect loops if (AUTH_BYPASS_PATHS.includes(url.pathname)) { return next(); } // Simple presence check for fa_session cookie const cookieHeader = request.headers.get('cookie') || ''; const hasSession = /fa_session=[^;]+/.test(cookieHeader); if (hasSession) { return next(); } return context.rewrite('/gated-404'); });