【问题标题】:PHP apache_request_headers does not work wellPHP apache_request_headers 不能正常工作
【发布时间】:2015-03-01 17:51:48
【问题描述】:

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

因为与此同时,iv'e 开发了一个 REST API,它可以使用 php-json-mysql 将数据库处理给客户端,所以当我一起使用 GET 方法时,我还将我的 apikey 作为“授权”包含在标题中,但我无法在我的代码中获取它.

这是我的方法:

$headers = apache_request_headers();

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

但在我的请求标头中它说

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 上使用 Advance REST 客户端扩展。 有人遇到这个吗?

【问题讨论】:

    标签: php rest httprequest


    【解决方案1】:

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

    因为把它当作

    Authorization: API_KEY
    

    无效,Web 服务器可能完全忽略它。您可能想要使用这样的自定义标题:

    X-Authorization: API_KEY

    X-Api-Key: API_KEY

    自从我使用 PHP 已经有一段时间了,但我认为如果您像这样发送标头,则无法使用 apache_request_headers 获取它们,因此您必须以这种方式获取它:

    $_SERVER['HTTP_X_AUTHORIZATION']

    $_SERVER['HTTP_X_API_KEY']

    【讨论】:

    • 哦,工作正常,我认为 PHP 隐藏了这个标头,或者在 httpconfig 中设置为 safemode=on 嗯,你怎么看?
    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2013-06-29
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多