PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nodeMCU Arduino-IDE: Passwort-Abfrage per Website bevor Benutzer Zugriff erhält



HaWe
25.06.2017, 18:55
hallo,
eine neue Frage zu meiner IoT Website mit nodeMCU und der Arduino-IDE:
Ich bräuchte eine Passwort-Abfrage per Website bevor ein Benutzer Zugriff erhält.

wenn ich folgende Website online stelle, möchte ich ntl nicht, dass Hinz und Kunz durch Drücken der Buttons meine Garage öffnen oder die Heizung ausschalten.
Bevor jemand also Zugriff erhält, soll er sich vorher autorisieren.
Das kann einfachheitshalber einfach ein langes Passwort sein, das nach Eingabe im nodeMCU-programm auf Übereinstimmung mit einem vorgegeben String kontrolliert wird - nichts großartiges also.
In C geht das einfach, so etwa soll es funktionieren:


char pwd[20]="qwertzuiopüäö", input[20]="";
printf("Enter password:\n");
scanf ("%20s", input);
if(input!=pwd) return;


aber wie schreibt man den "enter passwort Dialog" in html, bevor der html code weiter ausgeführt wird, dann samt aller freigegebenen Buttons zum Schalten und Steuern?



#include <ESP8266WiFi.h>
WiFiServer server(80);
IPAddress timeServer(132, 163, 4, 101); // time-a.timefreq.bldrdoc.gov
#include <TimeLib.h>
#include <WiFiUdp.h>
#include <Timezone.h>

//...


void handleWebsite(){
volatile static int valD7=-1, valD8=-1;

//---------------------------------------
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}


//---------------------------------------
// Check password // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ??????????????

char pwd[20]="qwertzuiopüäö", input[20]="";

client.println("bitte Passwort eingeben:");

// ?????????????????????????????????????????????????? ????????????
// ?????????????????????????????????????????????????? ????????????

if(input!=pwd) return; // keine Übereinstimmung: Rausschmiss!




// hier geht's dann normal weiter, bei Übereinstimmung

// ***SNIP***

}

Ceos
26.06.2017, 10:06
was du brauchst ist ein HTML-Formular und eine Benuzter-Token
Ich denke das Forum ist hierfür nicht ganz der richtige Ansprechpunkt, da das reiner HTML Kram ist
Faktisch funktioniert das folgendermaßen:
- du empfängst einen Webseitenaufruf ohne Identifikation
- den leitest du zur login HTML um
- auf der login HTML befinden sich benamte Eingabefelder und ein Button mit einer sog. POST action
- in der POST action definierst du wie die Felder übertragen werden, die resultierende Anfrage musst du dann mit deinem Code analysieren udn die eingegebenen Daten kontrollieren
- stimmen die Daten, übermittelst du dem Browser ein sog. Cookie mit der Benutzeridentifikation
- solang derjenige mit diesem einen Browser auf der Seite ist, kannst du bei jeder weiteren Anfrage das Cookie anfordern und seine ID prüfen und ggf. wieder zum login umleiten wenn die ID abgelaufen oder unbekannt ist

Als Suchworte würde ich sowas wie "HTML Sessionhandling Cookies Login" verwenden udn mich da mal etwas belesen
Für die Implementation des Parsings für die Requests können wir dir sicher heir weiter helfen :)

PS das cookie sollte idelaerweise kein einfacher Name sein sondern etwas dass aus datum, benutzername und einem geheimwort/salz besteht, stichwort hashing