2016-04-07 3 views
0

Я работаю над PHP Restful Api и для тестирования Я использую Chrome Advanced REST-клиент и Postman, но проблема в том, что api работает идеально на локальном хосте, но на публике сервер, когда я хочу отправить авторизацию через заголовок, почтальон и продвинутый клиент отдыха, оба дают мне ответ json, включая эту ошибку: «отсутствует ключ api», что означает, что он не распознает авторизацию!Ошибка при отправке авторизации через заголовок

Пожалуйста, обратите внимание на эти два фотографии:

Authenticate function in my php rest api

Postman's error

Есть ли решение этой проблемы?

Я был бы очень признателен за любую помощь; Спасибо заранее

+0

Вы пытались напечатать '$ headers'? Что внутри? –

+0

@LucaAbbati: Да, но было все, кроме Authenticate: D –

+0

Пожалуйста, напишите фактический код вместо скриншотов. [См. Здесь] (http://meta.stackoverflow.com/a/285557/1402846). Спасибо. – Pang

ответ

0

Это может произойти из-за определенных конфигураций Apache, отбрасывающих заголовок Authorization, если он не в известном формате. Вы можете попробовать создать файл с именем .htaccess в каталоге своих приложений, поместить в него строку SetEnvIf Authorization (.*) HTTP_AUTHORIZATION=$1, а затем получить доступ к заголовку через $_SERVER["HTTP_AUTHORIZATION"].

В основном, это означает, что переменная окружения, называемая HTTP_AUTHORIZATION, не соответствует значению заголовка Authorization до того, как Apache отбросит его.

+1

Спасибо большое Крис :) Он работает отлично, но с небольшим изменением: я добавил эту строку SetEnvIf Authorization "(. *)" HTTP_AUTHORIZATION = $ 1 в моем .htaccess файле, и я использовал $ _SERVER ['REDIRECT_HTTP_AUTHORIZATION'] Вместо $ _SERVER ["HTTP_AUTHORIZATION"]. –

Смежные вопросы