簡體   English   中英

通過HTTP進行ArangoDB身份驗證

[英]ArangoDB authentication via HTTP

我已經看到了如何使用arangosh對數據庫進行身份驗證的示例,但我在文檔中找不到有關如何通過http API進行身份驗證的內容。 這可能嗎? 它是這樣的:

HTTP://用戶名:passwd@arangouri.com:8529 / _api /文件

好的,在Windows上使用Arango DB中的身份驗證之后,我發現了以下內容:

我無法使用此命令(應該啟用身份驗證)

--server.disable-authentication false

更新:我意識到我無法使用此命令,因為它根本不是命令:-o在仔細查看文檔后,它是一個命令行選項。 它應該在你開始arangosh時使用。 請參閱此處的文檔

我假設我需要以某種方式調整它以在Windows命令提示符下工作,但我不確定需要更改什么。 作為一個解決方法我打開文件“arangod.conf”(我在這里找到它C:\\ Program Files(x86)\\ ArangoDB 1.4.7 \\ etc \\ 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:password@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);
});

從命令行,您可以執行以下操作以將HTTP基本身份驗證傳遞到服務器:

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

以上示例適用於卷曲。 如果您使用任何其他HTTP客戶端,則必須找到用於設置HTTP基本身份驗證的用戶名/密碼的選項,並將它們發送到服務器。

它通過Authorization標頭完成,您可以在其中設置身份驗證機制(例如Basic),然后是格式為[username]:[password] base64編碼字符串。 例如,可以在此處找到更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM