A-A+

php获取不到Authorization PHP无法获取Authorization 解决方法

2018年09月26日 21:55 汪洋大海 暂无评论 阅读 1,979 views 次

在开发api接口时候,token放到了信息头的Authorization上,后端直接读取信息头拿去token,总是拿不到,把整个header打印出来,就是没有Authorization

放线上环境又没有问题,线上和本地环境差的就是NGINX和apache……

Google发现是apache的问题,原来是apache把这个信息头Authorization去掉了
方法一:修改.htaccess文件就可以修复,新增这部分。

 

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

注意注意,整个.htaccess文件内容变成

AddDefaultCharset UTF-8


    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]

    # Handle Authorization Header 下面是新添加的哦
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


方法二:也许改发以下代码就可以接收了:

$headers=getallheaders();
$httpAuthorization = $headers ['Authorization'];

//注意getallheaders 也可以替换为apache_request_headers,下面是apache_request_headers的使用案例
 $value) {
    echo "$header: $value 
\n"; } ?>

部分内容自己整理。
文章来源:http://www.ctfang.com/index.php/archives/17/

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言