HTTP-Anfragen mit Basisauthentifizierung senden

PHP:
HTTP-Anfragen mit Basisauthentifizierung senden

So geht’s:

<?php
$url = 'https://beispiel-api.de/daten';
$benutzername = 'DeinBenutzer';
$passwort = 'DeinPasswort';

$context = stream_context_create([
    'http' => [
        'header' => 'Authorization: Basic ' . base64_encode("$benutzername:$passwort"),
    ],
]);

$result = file_get_contents($url, false, $context);

if ($result !== false) {
    echo "Erfolg: " . $result;
} else {
    echo "Fehler beim Abrufen der Daten.";
}
?>

Beispiel-Ausgabe:

Erfolg: {"nachricht": "Hallo, Welt!"}

Tiefgang

Die Basisauthentifizierung ist ein altbewährtes Verfahren aus den Anfangstagen des Internets und gehört zum HTTP-Standard. Es gibt sicherere Methoden, wie OAuth, aber Basisauthentifizierung bleibt populär wegen ihrer Einfachheit und breiten Unterstützung. Wichtig zu betonen ist, dass sie nur über HTTPS genutzt werden sollte, um die Zugangsdaten zu verschlüsseln.

Alternativen wie API-Schlüssel, Token-basierte Authentifizierung oder OAuth bieten je nach Anforderung und Risikostufe mehr Sicherheit und Flexibilität. Die Implementierung der Basisauthentifizierung in PHP kann über cURL oder Stream-Kontexte (wie im Beispiel oben) erfolgen. Beachte, dass file_get_contents und Kontext-Streams in manchen Hosting-Umgebungen eingeschränkt sein können.

Siehe auch