Как программно изменить пароль в базовой аутентификации ArduinoOTA? - PullRequest
0 голосов
/ 10 июня 2019

Мне нужно изменить пароль, когда пользователь запрашивает новый пароль в 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 выключен.

...