PHP apache_request_headers 效果不佳

PHP apache_request_headers does not work well

你好可能会问这个为什么我的代码在执行我的代码时无法获取headers['Authorization']?

因为我同时开发了一个 REST API,它可以使用 php-json-mysql 处理客户端的数据库,所以当我一起使用 GET 方法时,我还将我的 apikey 包含在 header 中作为'Authorization' 但我无法在我的代码中获取它。

这是我的方法:

$headers = apache_request_headers();

if (isset($headers['Authorization'])) {
    //Good
}else {
    //API KEY is missing
}

但在我的请求中 header 它说

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Authorization: API_KEY
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

我在 chrome 上使用高级 REST 客户端扩展。 有人遇到过这个吗?

Authorization header 有一个 specific format 它应该符合。

自从将其用作

Authorization: API_KEY

无效,网络服务器可能完全忽略了它。您可能想像这样使用自定义 header:

X-Authorization: API_KEY

X-Api-Key: API_KEY

自从我使用 PHP 以来已经有一段时间了,但我认为如果你像这样发送 header,你将无法通过使用 apache_request_headers 来获取它们,所以你会必须这样获取:

$_SERVER['HTTP_X_AUTHORIZATION']

$_SERVER['HTTP_X_API_KEY']