我使用API
撰写PHP ZF2
他们使用HTTP
授权。我使用HTTP
获取所有apache_request_headers()
标头(也使用ZF2的$this->getRequest()->getHeaders())
进行了测试。
它适用于我的语言环境安装版本。但是在我的服务器上,HTTP授权标头不可用。我的浏览器调试工具向我显示授权标头正确发送。
两台服务器都使用相同的软件运行:Ubuntu 14.04
Apache2
(服务器版本: Apache / 2.4.7 (Ubuntu))。
是否有PHP ini
设置允许授权标头?
编辑2015-05-13:
$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
echo 'you are auth';
} else {
echo 'there is no Authorization';
}
在我的语言环境系统上,这会在服务器上返回“你是auth”,“没有授权”。在Chrome浏览器中使用Postman应用进行测试。
编辑2015-05-14: 我认为这是一个Apache2主题。
如何在Apache2中启用Authorization标头?
答案 0 :(得分:9)
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
.htaccess中的解决了这个问题。
但我不知道为什么在我的语言环境系统中没有必要这样做。
答案 1 :(得分:1)
按照 bitkorn 的建议,您可以将以下内容添加到您的 .htaccess 中:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
如果这不能解决您的问题,那么您可以尝试以下操作:
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
但是,必须提及的是,如果您使用任一解决方案,则必须使用 HTTP_AUTHORIZATION 标头访问标头。如果您尝试使用授权,它将为空。