Korzystając z usług sieciowych często spotykamy się z Basic Auth jako metodą zabezpieczającą dostęp do zasobów. W przypadku Zend Frameworka klientem REST jest Zend_Rest_Client, który nie ma wbudowanej obsługi Basic Auth. Na szczęście istnieje coś takiego jak Zend_Http_Client, który rozwiązuje ten problem.

Jeśli API, z którego korzystamy, wymaga od nas podania loginu i hasła, wystarczy, że ręcznie ustawimy klienta http, który obsługuje Basic Auth. Zacznijmy od klienta REST.

$client = new Zend_Rest_Client();
$client->setUri('uri_uslugi');

Mając utworzony obiekt klienta REST, tworzymy klienta http oraz przekazujemy mu dane autoryzacyjne.

$httpClient = new Zend_Http_Client();
$httpClient->setAuth('username', 'password');

Na koniec wskazujemy klientowi REST, że będziemy korzystali z niestandardowego klienta http oraz wysyłamy request w celu autoryzacji naszego klienta REST.

$client->setHttpClient($httpClient);
$response = $client->restGet('zasob');

W ten oto prosty sposób dokonaliśmy autoryzacji Basic Auth w Zend_Rest_Client.