Передача учетных данных в URL для Apache (API)

#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;