Authorization header missing in PHP POST request
After quite some time a found a solution to this problem. Somehow the Authorization
header was stripped away. By adding the following lines in my .htaccess
, I was able to get it to work.
RewriteEngine OnRewriteCond %{HTTP:Authorization} ^(.*)RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
I had first to add this to my machines Apache config file:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
On Linux in /etc/apache2/apache2.conf
On Mac using Homebrew in /usr/local/etc/httpd/httpd.conf
On Mac with "native" Apache: /private/etc/apache2/httpd.conf
or: /etc/apache2/httpd.conf
Adding this to .htaccess didn't work for any reason:
RewriteEngine OnRewriteCond %{HTTP:Authorization} ^(.*)RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Below array holds request headers, that may be missing in $_SERVER variable
$headers = apache_request_headers();
(Especially true for 'HTTP_X_REQUESTED_WITH' ajax header, which will be found this way as:$headers['X_REQUESTED_WITH']