Php 基本访问认证头
我目前正在使用Zend框架在PHP中开发REST客户端,遇到了一个问题 我目前有两个虚拟服务,我正在测试;一个是'noauth',它不需要身份验证,只返回一些JSON;另一个是'auth',它需要身份验证,并返回更具体的JSON。直接从web访问这两种方式都不会出现问题,例如,导航到“”会在网页上显示JSON,而“”会显示一个对话框,要求用户登录 我的目标是能够从我的主web应用程序访问这些不同的服务。首先需要用户登录到此web应用程序。然后,他们将能够从该web应用程序调用不同的服务。我可以使用以下方法轻松地让noauth工作:Php 基本访问认证头,php,rest,authentication,zend-framework,Php,Rest,Authentication,Zend Framework,我目前正在使用Zend框架在PHP中开发REST客户端,遇到了一个问题 我目前有两个虚拟服务,我正在测试;一个是'noauth',它不需要身份验证,只返回一些JSON;另一个是'auth',它需要身份验证,并返回更具体的JSON。直接从web访问这两种方式都不会出现问题,例如,导航到“”会在网页上显示JSON,而“”会显示一个对话框,要求用户登录 我的目标是能够从我的主web应用程序访问这些不同的服务。首先需要用户登录到此web应用程序。然后,他们将能够从该web应用程序调用不同的服务。我可以使
$base_url = 'https://example.org';
$client = new Zend_Rest_Client($base_url);
$endpoint = '/example/dummy/noauth';
$response = $client->restGet($endpoint);
但是如果每次都不询问用户的用户名和密码,我就无法让“auth”一个正常工作。目前,我正在为此使用硬编码值,但最终,将是存储在会话中的用户用于登录的值。以下是我尝试过的一些方法:
$user = base64_encode('username:password');
$client->setHeaders('Authorization: Basic '.$user);
而且:
$client = new Zend_Http_Client();
$client->setAuth('username', 'password', Zend_Http_Client::AUTH_BASIC);
这些似乎都不起作用。有人对如何实现我需要的东西有什么想法吗?您必须在REST对象上调用
getHttpClient()
,然后调用通常在Zend\u Http\u Client()中的函数
下面是一个简单的例子:
$client = new Zend_Rest_Client($base_url);
$client->getHttpClient()->setAuth($username, $password, Zend_Http_Client::AUTH_BASIC);
...
通过这样做,它将使用变量中的用户名和密码,而不是每次用户想要访问页面时都询问用户。可能重复的