我可以使用用户名和密码登录这里http://localhost:7474/通过键入server: connect
并登录。我可以从那里通过执行查询查看数据。
然后我立即切换到一个新的选项卡,或者在同一个选项卡中,转到:http://localhost:7474/db/data/,得到:
{
"errors" : [ {
"message" : "No authorization header supplied.",
"code" : "Neo.ClientError.Security.AuthorizationFailed"
} ]
}
而且我不能使用py 2Neo或任何NEO4J库连接,也不能使用相同的密码;它们返回完全相同的错误。
我做错了什么?
3条答案
按热度按时间njthzxwz1#
将此添加到您的http-header请求中:
授权人:“基本xxxx”
xxxx = base64(用户名:密码)
eaf3rand2#
现在,所有REST API请求都必须包含
Authorization
头。引用neo4j手册的REST API Authentication and Authorization页:请求应包括值为
Basic <payload>
的Authorization头,其中“payload”是base64编码的字符串“username:password”。该页包含一些示例。
<neo4j-install-dir>/conf/neo4j-server.properties
中的dbms.security.auth_enabled
属性设置为false
,然后重新启动服务器。*[已更新]
顺便说一句,既然你的问题提到了
py2neo
,你应该知道它的Graph类支持“授权”。gojuced73#
那请求庄生应该是这样的:(
XXX
是user:password字符串的Base64编码-要编码的字符串包含列):这已经在Javascript(axios)和Deno.land(fetch API)中进行了测试。ES Javascript包含一个内置的base64编码函数:btoa()