#apache #authentication #opencpu
#apache #аутентификация #opencpu
Вопрос:
Проблема
Я хотел бы передать учетные данные в URL для доступа к моему серверу Apache.
My .htaccess настроен для базовой аутентификации.
AuthType Basic
И отображает окно авторизации, в котором я могу ввести учетные данные. Все нормально, НО…
Проблема в том, что URL находится внутри скрипта и используется для доступа к API.
<script>
....
ocpu.seturl("//xx.xx.xx.xx/ocpu/library/base/R")
....
</script>
Что я пробовал
Я попытался передать учетные данные с помощью:
ocpu.seturl("//user:password@xx.xx.xx.xx/ocpu/library/base/R")
Или что-то вроде
ocpu.seturl("////xx.xx.xx.xx?username=useramp;pass=password/ocpu/library/base/R")
Но это не работает. Кроме того (и, как и ожидалось), если я введу учетные данные в веб-браузере, например
http://xx.xx.xx.xx?username=useramp;pass=password
это не работает (то есть появляется окно авторизации).
Разве это невозможно? Или мне нужно кодировать учетные данные?
Спасибо
Ответ №1:
Возможно, вы идете по этому неправильному пути. Вы должны разместить веб-страницу на том же сервере, что и страница ocpu, и тогда учетные данные, которые пользователь вводит при загрузке веб-страницы, будут автоматически использоваться при вызове API.
Вы пытались включить свой веб-интерфейс в приложение, как в примерах приложений?
Комментарии:
1. Мой веб-сайт размещен на OVH ( ovh.co.uk ) и мой сервер дома. Я не использую какое-либо приложение, а просто javascript, как в jsfiddle.net/WVWCR/165
2. Или это неправильный способ сделать это? Я имею в виду, что вы НЕ должны использовать свой «собственный» сервер дома?
Ответ №2:
Вы пытались передать основные учетные данные для аутентификации в заголовке аутентификации? В обычном JavaScript это можно сделать, например, следующим образом:
var invocation = new XMLHttpRequest();
invocation.open("GET", url, true, username, password);
invocation.withCredentials = true;