neo4j REST API身份验证和授权

neo4j REST API身份验证和授权,neo4j,Neo4j,我输入 在web浏览器上,我收到以下消息: http://localhost:7474/user/neo4j 我在上搜索文档,它显示: { "errors" : [ { "message" : "No authorization header supplied.", "code" : "Neo.ClientError.Security.AuthorizationFailed" } ] } 通过使用HTTP Basic Auth向Neo4j发送用户名和密码进行身份验证。请求应该包括一个值为Ba

我输入

在web浏览器上,我收到以下消息:

http://localhost:7474/user/neo4j
我在上搜索文档,它显示:

{
"errors" : [ {
"message" : "No authorization header supplied.",
"code" : "Neo.ClientError.Security.AuthorizationFailed"
} ]
}
通过使用HTTP Basic Auth向Neo4j发送用户名和密码进行身份验证。请求应该包括一个值为Basic的授权头,其中“payload”是一个base64编码的字符串“username:password”。
示例请求
得到http://localhost:7474/user/neo4j
接受:application/json;字符集=UTF-8
授权:基本bmVvNGo6c2VjcmV0
示例响应
200:好的
内容类型:application/json;字符集=UTF-8

我使用web浏览器查看信息,如何在web浏览器(Firefox)中“包含授权头”?我不明白上面说什么。如何输入这些示例请求?

仅通过浏览器传递身份验证标头的最简单方法是在URL身份验证中使用:

http://username:password@本地主机:7474/user/neo4j


更一般地说,在测试RESTAPI时,最好使用命令行工具(如curl)而不是浏览器。如果您使用的是Linux/Mac,那么可能已经安装了curl。如果您在Windows上,可以下载curl

Curl允许您按如下方式微调发送的标题:

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 
curl --user 'myusername:mypassword' 'http://localhost:7474/user/neo4j'
或者更简单地说,您可以使用
--user
选项:

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

另外,Neo4J响应中的WWW Authenticate标头如下所示:

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 
curl --user 'myusername:mypassword' 'http://localhost:7474/user/neo4j'
如果它包含scheme和realm的值,那么Firefox会弹出一个对话框,提示您输入用户名和密码:

WWW-Authenticate: None
输入用户名/密码后,FF将发送一个后续请求,其中包含相应的授权标头,其中包含所提供用户名:密码的base64编码值


有关HTTP基本身份验证的更多详细信息,请参见此处:

回答得好。我还发现诸如或有用的客户。我应该指出,我与这两个组织都没有关系!这意味着我必须使用一个工具将请求发送到api?在curl的情况下,curl是一个简单的命令实用程序,您可以使用它代替浏览器。Postman是一个位于Chrome浏览器内部的实用程序,Fiddler是一个位于浏览器和外部世界之间的代理。一种简单的方法是按如下方式在URL身份验证中使用:
http://username:password@localhost:7474/user/neo4j
@ANguyen要清楚,您只需输入
http://username:password@localhost:7474/user/neo4j
(显然使用正确的用户名/密码)进入浏览器,您应该能够继续。一般来说,最好使用其中一个建议的工具,因为它们可以让您更好地控制发送的内容,以及更好地查看响应。@Ben Rowland I input,其中neo4j和123456分别是用户名和密码。Firefix会显示一个对话框,就像你要登录一样,但是这个站点不需要身份验证,这可能是一个技巧。。。当我单击对话框的“是”时,它仍然显示消息“未提供授权标头”。