当用户在esp8266wifiserver中要求使用新密码时,我需要更改密码。
我已经使用ArduinoOTA来实现基本身份验证,现在我需要一种方法来在程序中实现密码重置。
...
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>
const char* www_username = "admin";
const char* www_password = "password";
...
void handleRoot() {
File file = SPIFFS.open("/index.html", "r");
size_t sent = server.streamFile(file, "text/html");
file.close();
}
void handle_posted_variable() {
// put what to do when a variable is posted in the url
for (int i = 0; i < (server.args() - 1); i++) {
Serial.print(server.argName(i));
Serial.print(" = ");
Serial.print(server.arg(i));
Serial.println();
if (server.argName(i) == "NEWPWD_LOGIN"){
// i need to do something here
const char* www_password = server.arg(i).c_str() ;
}
}
}
void setup(void) {
SPIFFS.begin();
Serial.begin(115200);
WiFi.begin(ssid, password); //Connect to your WiFi router
ArduinoOTA.begin();
server.on("/", []() {
Serial.println(www_password);
if (!server.authenticate(www_username, www_password))
return server.requestAuthentication();
handleRoot();
});
}
void loop(void) {
ArduinoOTA.handle();
server.handleClient(); //Handle client requests
}
我希望代码能正常工作。虽然没有显示错误,但注销后尝试登录时,不允许使用新密码再次登录。
请注意:我不希望在Arduino关机时保留新密码。