PHP www-authenticate Basic Popup Loop Issue - PullRequest
0 голосов
/ 12 июня 2018

Так как два дня я пытаюсь найти свою проблему в простом примере кода:

<?php

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
} else {
    echo "<p>Hello {$_SERVER['REMOTE_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

?>

Открывается всплывающее окно Auth, я отправляю имя пользователя и пароль.Но всплывающее окно открывается снова и снова.Если я отменю всплывающее окно, сообщение 401 будет отображаться правильно.

Я попытался заполнить .htaccess с помощью

RewriteRule ^(.*)$ index.php [E=REMOTE_USER:%{HTTP:Authorization},QSA,L]

Но это ничего не изменит.Спасибо за любые идеи, чтобы решить эту проблему!

1 Ответ

0 голосов
/ 12 июня 2018

Какой стек вы используете на PHP?Предполагая, что это PHP-CGI, попробуйте следующее в вашем .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

Убедитесь, что mod_rewrite доступен на сервере и что файлы .htaccess были проанализированы (AllowOverride должно быть установлено ввсе в httpd.conf).

В зависимости от вашей инфраструктуры, может быть какой-то прокси, который отбрасывает заголовок аутентификации.Для чистой среды тестирования я рекомендую локальную установку Apache2.Стеки типа xampp обеспечивают полную готовность к разработке.

...