mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-30 04:26:50 +03:00 
			
		
		
		
	* Add Digest Auth * Check for Opaque and Nonce * Remove Serial Debug and fix Indentation * Added example sketch with documentation,Fixed indentation and Defaults * Digest Authentication minor changes + new padded 32 digit random function * update license to public domain * renaming functions
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|   HTTP Advanced Authentication example
 | |
|   Created Mar 16, 2017 by Ahmed El-Sharnoby.
 | |
|   This example code is in the public domain.
 | |
| */
 | |
| 
 | |
| #include <ESP8266WiFi.h>
 | |
| #include <ESP8266mDNS.h>
 | |
| #include <ArduinoOTA.h>
 | |
| #include <ESP8266WebServer.h>
 | |
| 
 | |
| const char* ssid = "........";
 | |
| const char* password = "........";
 | |
| 
 | |
| ESP8266WebServer server(80);
 | |
| 
 | |
| const char* www_username = "admin";
 | |
| const char* www_password = "esp8266";
 | |
|  // 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();
 | |
| }
 |