2015-11-23 74 views
3

我輸入的Neo4j REST API認證和授權在網絡瀏覽器

http://localhost:7474/user/neo4j 

,我收到消息:

{ 
"errors" : [ { 
"message" : "No authorization header supplied.", 
"code" : "Neo.ClientError.Security.AuthorizationFailed" 
} ] 
} 

我搜索上neo4j文檔和它說:

Authenticate by sending a username and a password to Neo4j using HTTP Basic Auth. Requests should include an Authorization header, with a value of Basic <payload>, where "payload" is a base64 encoded string of "username:password". 

Example request 

GET http://localhost:7474/user/neo4j 
Accept: application/json; charset=UTF-8 
Authorization: Basic bmVvNGo6c2VjcmV0 

Example response 

200: OK 
Content-Type: application/json; charset=UTF-8 

我正在使用網絡瀏覽器查看信息,如何「包括授權標題」網頁瀏覽器(Firefox)?我不明白它說什麼。如何輸入這些示例請求?

回答

6

通過只用瀏覽器認證頭的最簡單方法是使用的URL驗證:

http://username:[email protected]:7474/user/neo4j


更一般地,測試REST API時,最好使用一個命令諸如捲曲而不是瀏覽器的在線工具。如果你在Linux/Mac上,那麼你可能已經安裝了curl。如果你在Windows上,可以下載curl。

捲髮讓你微調您發送標題爲:

curl --header 'Authorization: Basic dGVzdDp0ZXN0' 'http://localhost:7474/user/neo4j' 

或者更簡單地說,你可以使用--user選項:除了

curl --user 'myusername:mypassword' 'http://localhost:7474/user/neo4j' 

純粹作爲,來自Neo4J的響應中的WWW-Authenticate報頭如下:

WWW-Authenticate: None 

相反,如果它包含了方案和境界的值,那麼火狐會彈出一個對話框提示你輸入用戶名和密碼:

WWW-Authenticate: Basic realm="WallyWorld" 

一旦進入用戶名/密碼,FF會發送後續請求包含提供的用戶名:密碼的base64編碼值的相應授權標頭。

關於HTTP基本認證的更詳細的信息在這裏給出:HTTP Basic Authentication

+0

好的答案。我還發現諸如[Postman](https://www.getpostman.com/)或[Fiddler](http://www.telerik.com/fiddler)等客戶有用。我沒有從屬關係,要麼我應該指出! – ceej

+0

這意味着我必須使用工具將請求發送到API? – anhtv13

+0

在curl的情況下,curl是一個簡單的命令工具,您可以使用它代替瀏覽器。 Postman是一款位於Chrome瀏覽器內部的實用程序,Fiddler是位於瀏覽器和外部世界之間的代理。一個簡單的方法是使用in-URL認證,如下所示:'http:// username:password @ localhost:7474/user/neo4j' –