У меня есть 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?
Спасибо за вашу помощь