Este repositorio muestra un sitio estático alojado en Cloudflare Pages y cuyo contenido está "protegido" por un nombre de usuario/contraseña compartido con autenticación de acceso básico HTTP. La verdadera magia está en functions/_middleware.ts
, que se basa en el ejemplo de Cloudflare Workers para la autenticación básica HTTP, reutilizado como middleware para usarse con la función Funciones de Cloudflare Pages.
Este sitio de demostración está alojado en https://cloudflare-pages-shared-password.pages.dev/, con admin
como nombre de usuario y contraseña.
El sitio estático de este repositorio se creó con Hugo, pero el middleware se puede utilizar con cualquier sitio estático alojado en Cloudflare Pages.
No doy garantías sobre la seguridad de este código. En particular, no se debe esperar que una contraseña compartida, almacenada en un repositorio, proporcione un grado significativo de seguridad.
Un agradecimiento especial a CherryJimbo e Isaac McFadyen por responder a mis preguntas sobre la instancia de Cloudflare Discord. Sus sugerencias fueron esenciales para que la primera versión de este código funcionara.