我输入
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)中“包含授权标题”?我不明白它说的是什么。如何输入这些示例请求?
答案 0 :(得分:8)
仅使用浏览器传递身份验证标头的最简单方法是使用URL内身份验证:
http://username:password@localhost:7474/user/neo4j
更一般地说,在测试REST API时,最好使用命令行工具,例如curl而不是浏览器。如果您使用的是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
如果它包含scheme和realm的值,那么Firefox会弹出一个对话框,提示您输入用户名和密码:
WWW-Authenticate: Basic realm="WallyWorld"
输入用户名/密码后,FF会发送一个后续请求,其中包含相应的Authorization标头,其中包含所提供用户名的base64编码值:password。
此处提供了有关HTTP基本身份验证的更多详细信息:HTTP Basic Authentication