How to marching Arduino OTA libraries with wifi -manager libraies

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ArduinoOTA.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <DNSServer.h>
const char* ssid = "";
const char* password = "";

ESP8266WebServer server(80);
String ipAddress = "";
const char* www_username = "admin2020";
const char* www_password = "esp8266";

void setup() {
  Serial.begin(115200);
  ArduinoOTA.begin();
  server.on("/", [](){
    if(!server.authenticate(www_username, www_password))
      return server.requestAuthentication();
    server.send(200, "text/plain", "Login OK");
  });
  server.begin();
  Serial.print("Open http://");
  Serial.println(WiFi.localIP());
  Serial.println("/ in your browser to see it working");
  
  //WiFiManager
  //Local intialization. Once its business is done, there is no need to keep it around
  WiFiManager wifiManager;
  //reset saved settings
  wifiManager.resetSettings();
  //set custom ip for portal
  //wifiManager.setAPStaticIPConfig(IPAddress(192,168,1,44), IPAddress(10,0,1,1), IPAddress(255,255,255,0));

  //fetches ssid and pass from eeprom and tries to connect
  //if it does not connect it starts an access point with the specified name
  //here  "AutoConnectAP"
  //and goes into a blocking loop awaiting configuration
  wifiManager.autoConnect("SmarttechPublicToiletRoll");
  //or use this for auto generated name ESP + ChipID
  //wifiManager.autoConnect();
   
  //if you get here you have connected to the WiFi
  Serial.println(":HTTP server connected!)");
}
void loop() {
  ArduinoOTA.handle();
  server.handleClient();
}

HI, i am using ESP8266 board.I want to create a OTA server to lock the wifi manager connection. Before people want to went in wifi manager service they need to login OTA server example: they need go browser to type in the IP adress to entre the user_name and password to be able to unlock the wifi-manager service. But after i restart the wifi-manager it ip adress become 192.168.4.1 the static ip adress for ESP8266 and i unable to connect to 192.168.4.1 using my browser. Is there any way to solve it ? Or any way to let the people to connect the wifi inside the OTA server ? Like when they entered the ip address and type in the username and password to able let them connect the wifi inside the website ? Sorry for my bad english.

i tried this code . wanted to open a Ethernet server for customer login type in ssid and password but it shown my ip adress 255.255.255.255 . WiFI manager my ip adress is WM: 192.168.8.225
...

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] ={
  00-A0-D1-A7-F4-26 };
IPAddress ip(10,1,1,1);

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void SendOKpage(EthernetClient &client)
{
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
                    // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("
");       
          }
          client.println("</html>");
}


void SendAuthentificationpage(EthernetClient &client)
{
          client.println("HTTP/1.1 401 Authorization Required");
          client.println("WWW-Authenticate: Basic realm=\"Secure Area\"");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<HTML>  <HEAD>   <TITLE>Error</TITLE>");
          client.println(" </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>");
}

char linebuf[80];
int charcount=0;
boolean authentificated=false;

void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    memset(linebuf,0,sizeof(linebuf));
    charcount=0;
    authentificated=false;
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        linebuf[charcount]=c;
        if (charcount<sizeof(linebuf)-1) charcount++;
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          if (authentificated)
            SendOKpage(client);
          else
            SendAuthentificationpage(client);  
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
          if (strstr(linebuf,"Authorization: Basic")>0 && strstr(linebuf,"c2F0YXJ1bjpwYXNzd29yZA==")>0)
            authentificated=true;
          memset(linebuf,0,sizeof(linebuf));
          charcount=0;
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

remove wifiManager.resetSettings();. it is only used to test WiFiManager

Juraj:
remove wifiManager.resetSettings();. it is only used to test WiFiManager

yeah i have put a //in front it

Mrtian2:
yeah i have put a //in front it

and now it doesn't do "after i restart the wifi-manager it ip adress become 192.168.4.1" and the problem is solved