http аутентификация не работает с параметрами в URI - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть API, я пытаюсь выполнить базовую аутентификацию, чтобы вызвать его, первый вызов с этим запросом GET:

https://example.com/test/api/v1/api

браузер отправляет мне имя пользователя и пароль.Я могу подключиться, но если я вызову второй запрос с такими параметрами, как это:

https://example.com/test/api/v1/api/5

Браузер снова отправит мне модал для соединения с пользователем и паролем.В данный момент я не могу подключиться, пользователь и пароль не восстановлены ...

В моем файле .htaccess:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Файл api.php содержит:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Authentification canceled';
    exit;
} else {
    $login = $_SERVER['PHP_AUTH_USER'];
    $pwd = $_SERVER['PHP_AUTH_PW'];

    if (isset($usersWS) && is_array($usersWS) && isset($usersWS[$login]) && $usersWS[$login] != "" && $usersWS[$login] == $pwd)
        //if ($login == "toto" && $pwd= "toto1234")
    {
        echo "connecte";
    }
    else
    {
        header('HTTP/1.0 401 Unauthorized');
        echo 'Authentification incorrecte';
        exit;
    }

Я не знаю, что не так?POST-запрос работает нормально.

После нескольких исследований, я думаю, что мой файл .htaccess неверен.

Когда я отправляю этот запрос:

https://example.com/test/api/v1/api.php?id=12

Работает нормально!Но с этим запросом:

https://example.com/test/api/v1/api/5

Не работает.

Итак, как я могу определить правила в .htaccess?

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 06 февраля 2019

Вам не нужно использовать PHP для выполнения базовой аутентификации, вы можете поместить все это в файл .htaccess.Чтобы это работало, вам нужно сгенерировать комбинацию пользователь / пароль и поместить их в файл на сервере /path/to/.htpasswd, а затем в свой файл .htaccess вы можете поместить это:

AuthType Basic
AuthName "My Website Name"
AuthUserFile /path/to/.htpasswd
Require valid-user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...