Sto creando un servizio Web con Zend e devo autenticare gli utenti prima di inviare loro la risposta. L'utente invierà una richiesta a una pagina del server, utilizzando curl, passando le sue credenziali sotto forma di curl_setopt($curl, CURLOPT_USERPWD, 'key:pass')
;Autenticazione HTTP CURL sul lato server
Iam utilizzando Zend Framework e quindi nella pagina lato server è indicato come:
http://www.example.com/app_name/public/controller/action/parameter
Ecco il codice totale per la richiesta dell'utente (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);
}
?>
Ora che cosa Voglio che, devo essere in grado di recuperare il nome utente e la password sul lato server (nel mio controller zend), in modo che io possa verificare le credenziali dell'utente dal database e inviare la risposta di conseguenza. Quindi, come posso fare l'autenticazione in un'altra pagina?
Beh, ho utilizzato CURLOPT_HTTPHEADER per l'invio delle params in header e iam in grado di recuperarli nel controller, come: $ request-> getHeader ('param'); –