#php #.htaccess #basic-authentication #.htpasswd
#php #.htaccess #базовая аутентификация #.htpasswd
Вопрос:
У меня есть часть содержимого моего веб-сайта Drupal, доступного через службу rest Json. Чтобы получить к ним доступ, я выполняю http-запрос с использованием базового протокола аутентификации (т. Е. добавляю заголовок авторизации).
Моя проблема в том, что этот веб-сайт должен быть опубликован в папке, защищенной методом AuthUserFile (т. е. .htaccess .htpasswd). Оба метода требуют одинакового заголовка запроса «Авторизация», поэтому я понятия не имею, как поместить их оба в запрос.
Примером запроса может быть:
curl -X GET
http://exmple.com/restendpoint
-H 'Authorization: Basic YWRtaslkdskdfhlskdjfgksdfgjpbmlzaA=='
-H 'Content-Type: application/json'
Теперь этот запрос (с учетом соответствующих учетных данных) работает, если у меня есть только аутентификация .htaccess, или если у меня есть только аутентификация на веб-сайте, но не оба.
Я также пытался установить одного и того же пользователя и пароль для обоих механизмов, но это не работает, я всегда не могу получить доступ к содержимому.
Есть ли какой-либо способ заставить эти два механизма сосуществовать?
Комментарии:
1. Привет, доннадульсинея, я столкнулся с той же проблемой, и мне интересно, решили ли вы эту проблему?
2. Нет, я никогда не указывал, как это решить. И у этого вопроса все еще 0 голосов, возможно, решение наивно, и я не смог его увидеть.
3. У меня была эта проблема с интернет-магазином, и я нашел документацию на их веб-сайте о том, что в этих случаях вам необходимо иметь бесплатный IP-маршрут в вашем файле htacces, чтобы у вас могла быть только одна активная аутентификация.
4. На самом деле, когда мне было нужно, я сделал именно это, чтобы обойти проблему, указав службам другой адрес на том же IP-адресе без ограничения conf. Но если это единственное решение, я думаю, что это большой недостаток протокола http-запросов.
5. Я так не думаю, потому что это один запрос, и вы не должны иметь возможности включать 2 разные аутентификации в один запрос, это сильно усложнило бы ситуацию.
Ответ №1:
По определению невозможно включить два разных набора учетных данных в один запрос. Поэтому вам необходимо избегать множественных запросов на аутентификацию, например, с помощью подстановочных знаков ip для вашего файла htaccess.