I am trying to connect my sd card to my basic authentication(base64) but cannot seem to get it. I have added a simple html on my sd card and when authentication succeeds i want the web page to appear from my sd card.
This is my code. Any help is appreciated.
#include <WebServer.h>
#include <Base64.h>
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
// MAC address from Ethernet shield sticker under board
static uint8_t mac[] = { 0x00, 0x09, 0x34, 0x15, 0x18, 0xEA };
String readString;
String authentication, username, pass;
boolean login = false;
boolean authenticated = false;
WebServer webserver("", 80); // defaults to no prefix, port 80
void privateCmd(WebServer &server, WebServer::ConnectionType type, char *, bool) {
if (server.checkCredentials("aG9tZTpzZWN1cml0eQ==")) { // home:security in base64 is YWRtaW46YWRtaW4=
server.httpSuccess();
P(helloMsg) = "
Login
Click the link to authenticate <a href="dashboard.html">Login
";server.printP(helloMsg);
// User authenticated - ok
authenticated = true;
} else {
server.httpUnauthorized();
}
}
void setup()
{
Serial.begin(9600);
// disable w5100 SPI while starting SD
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
Serial.print(F("Starting SD..."));
if(!SD.begin(4)) Serial.println(F("SD failed"));
else Serial.println(F("SD Ok"));
Serial.print(F("Starting ethernet..."));
if(!Ethernet.begin(mac)) Serial.println(F("Ethernet failed"));
else Serial.println(Ethernet.localIP());
digitalWrite(10, HIGH);
webserver.setDefaultCommand(&privateCmd);
webserver.addCommand("dashboard.html", &privateCmd);
webserver.begin();
}
void loop()
{
char buff[64];
int len = 64;
// //* process incoming connections one at a time forever */
webserver.processConnection(buff, &len);
}