如何在php中传递HTTP基本身份验证的值(用户名和密码)

时间:2012-03-27 15:37:21

标签: php zend-framework

Iam尝试使用PHP访问Foto Flexer API。此API需要图像url,cancelurl,callbackurl。

所以我已经提出了这个API的请求。此API需要在浏览器中访问图像而没有任何问题。但我的网站包含HTTP基本身份验证。现在我的问题是如何将用户名和密码传递给API,以便它可以打开图像..

1 个答案:

答案 0 :(得分:1)

基本身份验证将是用户名和密码结合冒号(:)然后进行base-64编码并传递一个标题,如下所示:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

要让PHP生成标题,您可以这样做:

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

如果您使用像Zend这样的库,他们会有生成和发送它的方法。对于curl,您可以将带有CURLOPT_HEADER选项的自定义标头发送到curl_setopt

<?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);
?>

这应该让你开始使用Zend。