2014-01-30 2 views
7

Я видел примеры аутентификации с помощью базы данных с использованием arangosh, но я не смог найти ничего в документации о том, как аутентифицироваться через http API. Это возможно? Это что-то вроде этого:Аутентификация ArangoDB по HTTP

http://username:[email protected]:8529/_api/document

ответ

5

Ok, после того, как играть с аутентификацией в Аранго БД на Windows, вот что я нашел:

я не мог получить эту команду для работы (которая должна включить проверку подлинности)

--server.disable-authentication false 

UPDATE: Я понял, что не могу заставить эту команду работать, потому что это не команда вообще: -o После более пристального изучения документации это параметр командной строки. Его следует использовать при запуске arangosh. См. documentation here.

Предполагаю, что мне нужно каким-то образом адаптировать его для работы в командной строке Windows, но я не уверен, что нужно изменить. Как Обойти я открыл файл "arangod.conf" (я нашел его здесь C: \ Program Files (x86) \ ArangoDB 1.4.7 \ и т.д. \ arangodb) и изменил следующую строку:

disable-authentication = yes 

в

disable-authentication = no 

Эта активированная аутентификация при перезапуске Arango. Ура!

Теперь для аутентификации через http ... очень просто. Это просто базовая HTTP-аутентификация. Поэтому в моем случае я использовал NodeJS и библиотеку запросов для аутентификации. Оба примера ниже работают нормально.

Полномочия прилагаемая с .auth:

request({ 
    url:'http://localhost:8529/_api/document/example/20214484', 
    json: true 
}, function (err, data){ 
    console.log(err); 
    if (data.body.error) console.log("ERROR: " + data.body.errorMessage); 

    console.log(data.body); 
}).auth("username", "password"); 

ИЛИ с учетными данными в URL:

request({ 
    url:'http://username:[email protected]:8529/_api/document/example/20214484', 
    json: true 
}, function (err, data){ 
    console.log(err); 
    if (data.body.error) console.log("ERROR: " + data.body.errorMessage); 

    console.log(data.body); 
}); 
2

Это делается через Authorization заголовок, где установлен механизм аутентификации (например, Basic), а затем в кодировке Base64 в формате [username]:[password]. Более подробную информацию можно найти, например, here.

4

из командной строки, вы можете сделать что-то вроде этого, чтобы передать HTTP базовую аутентификацию на сервере:

curl --basic --user "username:passwd" -X GET http://arangouri.com:8529/_api/document/... 

Приведенный выше пример для завитка. Если вы используете любой другой HTTP-клиент, вам нужно найти параметры для установки имени пользователя/пароля для базовой проверки подлинности HTTP и отправки их на сервер.

+0

Ok, так что я должен быть в состоянии только отправить имя пользователя и пароль с теми соответствующими опциями, используя jQuerys функцию Ajax. .. Звучит достаточно просто спасибо! – skinneejoe

Смежные вопросы