Ich bin ein API-Endpunkt erstellen. Dieser Endpunkt muss mit HTTP-Basisauthentifizierung gesichert werden.PHP Basic Auth setHeader wenn Daten inkorrekt
Wenn API Zugriff fordert möchte ich http Basic Auth anzeigen, wenn Daten inkorrekt sind Ich möchte eine 403 verbotene Nachricht zu werfen. Wenn die Daten stimmen, zeige ich im Moment "korrekt" an. Hier ist mein Code:
$username = null;
$password = null;
// if data is sent
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
//perforn check if data is correct
if($username == 'as' && $password = 'pass'){
die(var_dump("correct"));
}
//if data uncorrect throw 403 code
else
header('HTTP/1.0 403 Forbidden');
}
//request HTTP auth if nothing sent
if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die();
}
Im Moment löst mein Code 403 die ganze Zeit aus. Irgendeine Idee, wie man das repariert, das meinen oben beschriebenen Anforderungen entspricht?
Dieses Skript nicht auf allen Servern nicht funktioniert, habe ich versucht, es auf einem Web-Server und das Skript hält das Login Aufspringen Dialog, ich habe es auf einem lokalen Host-Server getestet und es hat perfekt funktioniert. – Jer
eine Idee, warum dies auftritt? Auf meinem lokalen Dev-Setup verwende ich MAMP (Apache-Webserver). –
haben noch nicht herausgefunden, warum dies geschieht, aber es hat etwas mit der 'HTTP_AUTHORIZATION' zu tun, denke ich .. unten die Antwort sehen, vielleicht ist das die richtige Antwort ist? – Jer