Buduję serwis internetowy z Zend i muszę uwierzytelnić użytkowników przed wysłaniem odpowiedzi. Użytkownik wyśle żądanie do strony serwera, używając curl, przekazując swoje poświadczenia w postaci curl_setopt($curl, CURLOPT_USERPWD, 'key:pass')
;Uwierzytelnianie HTTP CURL po stronie serwera
IAM przy użyciu Zend Framework i tak strona po stronie serwera jest oznaczona następująco:
http://www.example.com/app_name/public/controller/action/parameter
Oto całkowity kod żądanie użytkownika (client.php):
<?php
$curl = curl_init('http://www.example.com/app/public/user/add/1');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'username:password');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Sample Code');
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
if($resultStatus['http_code'] == 200) {
echo $response;
} else {
echo 'Call Failed '.print_r($resultStatus);
}
?>
co teraz Chcę to, muszę być w stanie pobrać nazwę użytkownika i hasło po stronie serwera (w moim kontrolerem Zend), tak, że mogę zweryfikować poświadczenia użytkownika z bazy danych i wysłać odpowiedź odpowiednio. Więc jak mogę dokonać uwierzytelnienia na innej stronie?
Well, I zostały z wykorzystaniem CURLOPT_HTTPHEADER wysyłania params w nagłówku i można je pobrać w kontrolerze, na przykład: $ request-> getHeader ('param'); –