Authorization-header und Funktion apache_request_headers
Ich waren auf einer Reise zu immer apache_request_headers() arbeiten auf meinem server. Ich habe ein Upgrade auf die neuste stabile PHP 5.4 und änderte meine PHP handler auf FastCGI, da dies ermöglicht es Ihnen, das apache_request_headers () - Funktion. Ich möchte lieber nicht ausführen, PHP als apache-Modul aufgrund von Berechtigungsproblemen.
Alles einwandfrei funktioniert mit meinem neuen set-up, aber das einzige Problem ist, dass apache_request_headers() scheint nicht zu Holen, die "Authorization" - header, die ich benötigen für meine OAuth-2-server.
Den header ich senden ist:
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Allerdings, wenn ich senden Sie die folgende Kopfzeile (oder etwas anderes als "Ermächtigung"), es funktioniert:
X-Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Frustrierend... Irgendwelche Ideen auf, wie bekomme ich diese zu arbeiten?
- Welches OS verwenden Sie? Ich bin mit Ubuntu 12.04 und PHP-5.5.5-1+debphp.org~precise+2 (cli), aber wenn ich den test für die Existenz von "apache_request_headers" ich bekomme bool(false) zurückgegeben.
- Siehe meine Antwort weiter unten 🙂 Arbeitete es aus.
- Ich denke, es ist weil ich war mit mod_fastcgi w/ php-fpm. Es scheint zu sein, ziemlich gut bekannt, dass diese Funktion existiert nicht bei der Verwendung von setup. Ich brauche auch um Access-Control-Allow-Origin und andere Header zu arbeiten, hatte aber bisher kein Glück. Ich brauche keine "Genehmigung" in meinem Fall fürchte ich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach etwas mehr Graben fand ich das folgende. Es entfällt die Notwendigkeit für die apache_request_headers() insgesamt, wenn Sie nicht mit der FastCGI-PHP-handler oder nicht läuft PHP als apache-Modul.
Auf einem separaten Hinweis, einen anderen header war ich zu brauchen war Content-Type, ich war nur in der Lage, in die apache_request_headers () - Funktion. Könnte hilfreich sein für jemanden 🙂
Auch, bei der Verwendung von php mit Fast-CGI und FPM ist Folgendes zu tun der trick:
Es entfällt die Notwendigkeit für die rewrite-Regel.
Ich fand meine Lösung zu arbeiten, wenn die RewriteRule Lösung nicht funktioniert:
Es kommt vielleicht von der apache, die ich verwendet, die hinter einem haproxy, aber der Authorization-header war irgendwie "umbenannt" (durch wen/was?)
REDIRECT_HTTP_AUTHORIZATION
stattHTTP_AUTHORIZATION
.Hoffe, das hilft.