¿Cuál es la mejor manera de agregar autenticación a un sitio web estático?

Pensemos fuera de la caja aquí. Tiene un servidor para poder crear un sitio dinámico. Este sitio podría leer las páginas estáticas en su disco y básicamente sería un controlador de archivos diferente para las páginas HTML. Este controlador obtendría el nombre de la página de la URL y, por lo tanto, primero verificaría si el usuario ha iniciado sesión. Si es así, se devolverá la página HTML.

De lo contrario, el usuario verá una página de inicio de sesión y deberá proporcionar sus credenciales de la forma que desee. Una vez que iniciaran sesión con éxito, verían la documentación. Si no, tendrán que volver a intentarlo o ir a otro lugar.

Entonces, básicamente anula el controlador HTML predeterminado.


Una solución alternativa podría ser construir su propio software de servidor, si todo lo que necesita hacer es servir estas páginas estáticas. Con los componentes adecuados, escribir un programa así no sería un gran problema. Obtener la autenticación correcta podría ser la parte más compleja de la misma. Hay muchas bibliotecas disponibles para crear una aplicación de este tipo y si todo lo que su servidor tendrá que hacer es servir estas páginas estáticas, esta podría ser la solución más elegante …


Tenga en cuenta que no puede autenticar a los usuarios en una página estática, ya que no habría seguridad en el back-end. Cualquier seguridad en el front-end puede ser examinada por un hacker para eludir su seguridad. Por lo tanto, necesita al menos una pequeña cantidad de lógica en el servidor para que los visitantes autenticados obtengan lo que desean mientras que los visitantes no autenticados se mantienen fuera. Esta lógica debe ser parte de la lógica del sitio detrás de la recuperación de la página cuando los usuarios acceden a ella.

Debe cambiar a alto voltaje para contenido estático y usar idear para autenticación. También puede usar AuthO es gratis.

Debe soltar solo 3 líneas de código si está utilizando idear.

No lo he hecho yo mismo, pero he oído que puedes hacerlo usando Firebase o UserApp