Я бы добавил комментарий, но репутация не позволяет.
У меня была эта проблема давным-давно, и я полагаю, что она была связана с конфигурацией PHP/Apache. Заголовки авторизации удаляются до того, как они попадут в ваше приложение в определенных конфигурациях PHP/Apache. Решение заключалось в том, чтобы добавить переписывание в .htaccess (или виртуальный сервер).
Я не помню специфику моей резолюции, но добавив в ваш .htaccess может помочь:
RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
У меня есть другое приложение (рамочный Symfony), который использует вместо этого:
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Вы также пробовали Базовое разрешение - чтобы убедиться, что это работает? Создайте заголовок, как это:
$username = 'username';
$password = 'password';
$auth = base64_encode($username.':'.$password);
$auth_header = 'Basic '.$auth;
Если вы использовали приведенный выше код, то $ auth_header будет "Basic dXNlcm5hbWU6cGFzc3dvcmQ ="
и ваш полный заголовок будет 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ ='
если вы посылаете, что в вашем заголовке, в PHP вы можете использовать:
var_dump('username is: '.$_SERVER['PHP_AUTH_USER'] . ' and password is: ' . $_SERVER['PHP_AUTH_PW']);
Это может, по крайней мере момент вы в правильном направлении.
Еще одна вещь, которую я вижу, заключается в том, что ваш тестовый код выше выглядит так, как будто вы настраиваете заголовок ответа, но var_dumping заголовок запроса? Я предполагаю, что ваши тесты включают отдельный файл/приложение/браузер, отправляющий реальный запрос, который вы пытаетесь сбрасывать.
Я также обнаружил, что при использовании базовой авторизации браузер может отправить предварительный запрос OPTIONS, который также может потребоваться обработать на стороне сервера до отправки последующего запроса на авторизацию.
Проверьте этот ответ на @deepwinter [Извлечение настраиваемого заголовка авторизации из входящего запроса PHP] (http://stackoverflow.com/questions/2902621/fetching-custom-authorization-header-from-incoming-php-request/16311684 # 16311684) – chirag
@chirag, спасибо за ваш ответ, но я тоже пробовал этот метод. Нет результата – Amiyar
Может ли кто-нибудь помочь мне с этим, пожалуйста? – Amiyar