2015-11-23 48 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' –