A-A+
php获取不到Authorization PHP无法获取Authorization 解决方法
在开发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/
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏