ESP32 - Contraseña del servidor web
En este tutorial, aprenderemos a crear un servidor web en ESP32 que esté protegido por nombre de usuario y contraseña para iniciar sesión. Antes de acceder a la página web en el ESP32, se le pedirá al usuario que introduzca su nombre de usuario y su contraseña.

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca de ESP32 y el servidor web
Si no estás familiarizado con ESP32 y con el servidor web (incluido el pinout, cómo funciona y la programación), puedes aprender sobre ellos a través de los siguientes tutoriales:
Código ESP32 - Servidor web Nombre de usuario/Contraseña
/*
* Este código de ESP32 fue desarrollado por es.newbiely.com
* Este código de ESP32 se proporciona al público sin ninguna restricción.
* Para tutoriales completos y diagramas de cableado, visite:
* https://es.newbiely.com/tutorials/esp32/esp32-web-server-password
*/
#include <DIYables_ESP32_WebServer.h>
// WiFi credentials
const char WIFI_SSID[] = "YOUR_WIFI_SSID";
const char WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD";
// Authentication credentials
const char* www_username = "admin";
const char* www_password = "esp32";
// Create web server instance
DIYables_ESP32_WebServer server;
// Main page handler
void handleRoot(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) {
server.sendResponse(client, "<html><body><h1>Login Successful!</h1><p>You are now logged in.</p></body></html>");
}
void setup() {
Serial.begin(9600);
delay(1000);
// Configure the main route
server.addRoute("/", handleRoot);
// Start server with WiFi connection (handles connection automatically)
server.begin(WIFI_SSID, WIFI_PASSWORD);
// Enable basic authentication
server.enableAuthentication(www_username, www_password, "Esp32");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
Serial.println("Server ready with authentication enabled");
Serial.print("Username: ");
Serial.println(www_username);
Serial.print("Password: ");
Serial.println(www_password);
}
void loop() {
// Handle all client requests (including authentication)
server.handleClient();
}
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Conecta la placa ESP32 a tu PC mediante un cable micro USB.
- Abre Arduino IDE en tu PC.
- Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
- Abre el Administrador de Bibliotecas haciendo clic en el icono Administrador de Bibliotecas en la barra de navegación izquierda de Arduino IDE.
- Busca “DIYables ESP32 WebServer”, luego encuentra la biblioteca Web Server creada por DIYables.
- Haz clic en el botón Instalar para instalar la biblioteca Web Server.

- Copie el código anterior y ábralo con Arduino IDE
- Cambie la información de Wi‑Fi (SSID y contraseña) en el código por la suya
- Haga clic en el botón Subir en Arduino IDE para subir el código al ESP32
- Abra el Monitor Serial
- Verifique el resultado en el Monitor Serial.
COM6
Connecting to WiFi...
Connected to WiFi
ESP32 Web Server's IP address: 192.168.0.3
Autoscroll
Clear output
9600 baud
Newline
- Verás una dirección IP en el Monitor Serial, por ejemplo: 192.168.0.3
- Escribe la dirección IP en la barra de direcciones de un navegador web en tu teléfono inteligente o PC.
- Ten en cuenta que debes cambiar la 192.168.0.3 por la dirección IP que obtuviste en el Monitor Serial.
- Verás una página que te pida introducir nombre de usuario y contraseña.

- Escribe el nombre de usuario y la contraseña que están en el código ESP32, en este caso: admin como nombre de usuario, esp32 como contraseña
- Si introduces correctamente el nombre de usuario y la contraseña, se mostrará el contenido web del ESP32:

※ Nota:
- Puedes cambiar el nombre de usuario y la contraseña del sitio web en el código cambiando los valores de dos variables: www_username y www_password
- Puedes modificar este código para añadir el código HTML/CSS/JavaScript de tu página web
- En el código, no hay código HTML para el formulario de inicio de sesión (nombre de usuario/contraseña). ¡No te sorprendas! El formulario de inicio de sesión es creado por el navegador.
Conocimiento Avanzado
Esta sección presenta conocimientos avanzados sobre cómo funciona el sistema de nombre de usuario y contraseña sin HTML para el formulario de inicio de sesión.
- Al principio, cuando introduces la dirección IP del ESP32 en un navegador web, el navegador envía una solicitud HTTP al ESP32 sin credenciales de nombre de usuario ni contraseña.
- Al recibir esta solicitud, el código del ESP32 verifica si se incluyen el nombre de usuario y la contraseña o no. Si están ausentes, el ESP32 no responde a la solicitud del contenido de la página. En su lugar, responde con un mensaje HTTP que contiene encabezados que indican al navegador que solicite al usuario su nombre de usuario y contraseña. Cabe destacar que esta respuesta no contiene código HTML para el formulario de inicio de sesión.
- Al recibir esta respuesta, el navegador web analiza los encabezados HTTP, reconociendo la solicitud del ESP32 de nombre de usuario y contraseña. Posteriormente, el navegador genera dinámicamente un formulario de inicio de sesión que permite al usuario ingresar sus credenciales.
- Luego, el usuario introduce su nombre de usuario y contraseña en el formulario.
- El navegador web incluye el nombre de usuario y la contraseña ingresados dentro de una solicitud HTTP y la envía al ESP32.
- El ESP32 verifica el nombre de usuario y la contraseña incluidos en la solicitud HTTP. Si son correctos, devuelve el contenido de la página solicitada. Si no, repite el proceso, pidiendo al usuario que introduzca de nuevo las credenciales correctas.
- Una vez que el usuario introduce correctamente el nombre de usuario y la contraseña por primera vez, las solicitudes subsiguientes no requieren introducir las credenciales. Esto se debe a que el navegador web guarda automáticamente las credenciales, incluyéndolas en las solicitudes siguientes.