2016-04-07 8 views
0

Ich arbeite an einem PHP Restful Api und zum Testen verwende ich Chrome Advanced REST-Client und Postman, aber das Problem ist, dass die API funktioniert perfekt auf dem localhost aber auf eine Öffentlichkeit Server, wenn ich eine Autorisierung über den Header senden möchte, Postman und Advanced Rest Client beide geben mir eine JSON-Antwort mit diesem Fehler: "API-Schlüssel fehlt", was bedeutet, dass es keine Autorisierung erkennt!Fehler beim Senden der Autorisierung über den Header

Bitte nehmen Sie sich einen Blick auf diese zwei Bilder:

Authenticate function in my php rest api

Postman's error

Gibt es eine Lösung für dieses Problem?

Ich wäre sehr dankbar für jede Hilfe; Vielen Dank im Voraus :)

+0

Haben Sie versucht, $ headers zu drucken? Was ist da drin? –

+0

@LucaAbbati: Ja, aber es gab alles außer Authenticate: D –

+0

Bitte posten Sie tatsächlichen Code anstelle von Screenshots. [Siehe hier] (http://meta.stackoverflow.com/a/285557/1402846) für Details. Vielen Dank. – Pang

Antwort

0

Dies kann passieren, weil bestimmte Apache-Konfigurationen den Header Authorization wegwerfen, wenn es nicht in einem bekannten Format ist. Sie könnten versuchen, eine Datei mit dem Namen .htaccess in Ihrem Anwendungsverzeichnis zu erstellen, setzen Sie die Zeile SetEnvIf Authorization (.*) HTTP_AUTHORIZATION=$1 darin und greifen Sie dann über $_SERVER["HTTP_AUTHORIZATION"] auf die Kopfzeile zu.

Im Grunde ist dies eine Umgebungsvariable namens HTTP_AUTHORIZATION auf was auch immer der Wert der Authorization Header ist, bevor Apache löscht.

+1

Vielen Dank Chris :) Es funktioniert perfekt, aber mit einer kleinen Änderung: Ich habe diese Zeile SetEnvIf Authorization "(. *)" HTTP_AUTHORIZATION = $ 1 in meiner .htaccess-Datei und ich verwendet $ _SERVER ['REDIRECT_HTTP_AUTHORIZATION'] anstelle von $ _SERVER ["HTTP_AUTHORIZATION"] –

Verwandte Themen