2012-03-27 5 views
1

Iam Der Zugriff auf die Foto-Flexer-API in PHP versuchen. Diese API benötigt die Image-URL, cancelurl, callbackurl.Wie die Werte (Benutzername und Passwort) für HTTP-Basis-Authentifizierung in PHP übergeben

Also ich habe eine Anfrage an diese API erhoben. Diese API erfordert den problemlosen Zugriff auf das Image im Browser. Meine Site verfügt jedoch über die erforderliche HTTP-Basisauthentifizierung. Jetzt ist meine Frage, wie gebe ich den Benutzernamen und das Passwort an die API, so dass es das Bild öffnen kann.

+0

Hängt davon ab, wie ihre API Bilder abruft, vielleicht unterstützt sie überhaupt keine HTTP-Authentifizierung. Aber Sie können eine URL wie "http: // Benutzername: Passwort @ IhrSeite.com/Pfad/zu/Bild.png" versuchen und sehen, ob es das akzeptiert. – drew010

Antwort

1

Basic Auth wird der Benutzername und das Passwort kombiniert mit einem Doppelpunkt (:) und dann Basis sein 64 codiert und wie so mit einem Header übergeben:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 

Für PHP den Header zu erzeugen, können Sie tun:

$username = 'your username'; 
$password = 'your password'; 
$authpart = $username . ':' . $password; 
$authpart = base64_encode($authpart); 
$header = 'Authorization: Basic ' . $authpart; 

Wenn Sie eine Bibliothek wie Zend verwenden, haben sie Methoden, die generiert und Sende das schon. Für curl können Sie einen benutzerdefinierten Header mit der Option CURLOPT_HEADER an curl_setopt senden.

<?php 
require_once 'Zend/Http/Client.php'; 

$uri = 'address to api'; 

$client = new Zend_Http_Client(); 
$client->setUri($uri); 
$client->setAuth($user, $password, Zend_Http_Client::AUTH_BASIC); 

$response = $client->request(Zend_Http_Client::GET); 
?> 

Dies sollte Sie mit Zend beginnen.

Verwandte Themen