如何在ArduinoOTA的基本身份验证中以编程方式更改密码?

时间:2019-06-10 12:34:37

标签: arduino esp8266 arduino-esp8266

当用户在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关机时保留新密码。

0 个答案:

没有答案