/* HTTP Advanced Authentication example Created Mar 16, 2017 by Ahmed El-Sharnoby. This example code is in the public domain. */ #include #include #include #include const char* ssid = "........"; const char* password = "........"; WebServer server(80); const char* www_username = "admin"; const char* www_password = "esp32"; // allows you to set the realm of authentication Default:"Login Required" const char* www_realm = "Custom Auth Realm"; // the Content of the HTML response in case of Unautherized Access Default:empty String authFailResponse = "Authentication Failed"; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); if (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("WiFi Connect Failed! Rebooting..."); delay(1000); ESP.restart(); } ArduinoOTA.begin(); server.on("/", []() { if (!server.authenticate(www_username, www_password)) //Basic Auth Method with Custom realm and Failure Response //return server.requestAuthentication(BASIC_AUTH, www_realm, authFailResponse); //Digest Auth Method with realm="Login Required" and empty Failure Response //return server.requestAuthentication(DIGEST_AUTH); //Digest Auth Method with Custom realm and empty Failure Response //return server.requestAuthentication(DIGEST_AUTH, www_realm); //Digest Auth Method with Custom realm and Failure Response { return server.requestAuthentication(DIGEST_AUTH, www_realm, authFailResponse); } server.send(200, "text/plain", "Login OK"); }); server.begin(); Serial.print("Open http://"); Serial.print(WiFi.localIP()); Serial.println("/ in your browser to see it working"); } void loop() { ArduinoOTA.handle(); server.handleClient(); delay(2);//allow the cpu to switch to other tasks }