Javascript couchDB 401错误
我有一个叫做“留言簿”的couchDB数据库。我首先使用下面的代码将a用户添加到“\u users”数据库:Javascript couchDB 401错误,javascript,angularjs,couchdb,Javascript,Angularjs,Couchdb,我有一个叫做“留言簿”的couchDB数据库。我首先使用下面的代码将a用户添加到“\u users”数据库: $scope.submit = function(){ var url = "https://sub.iriscouch.com/_users/org.couchdb.user:" + $scope.name; console.log(url); $http({ url: url, method: "PUT", data: {name : $scope.na
$scope.submit = function(){
var url = "https://sub.iriscouch.com/_users/org.couchdb.user:" + $scope.name;
console.log(url);
$http({
url: url,
method: "PUT",
data: {name : $scope.name,
password: $scope.pass,
roles: [],
type: "user"
},
withCredentials: true,
headers: {"Authorization": auth_hash(adminUsername, adminPass)}
})
.success(function(data, status, headers, config){
console.log(headers);
console.log(config);
});
}
用户添加到_users后,我使用Futon将该用户作为成员添加到我的“留言簿”安全文档中
之后,我尝试使用该用户名和密码(作为“留言簿”的成员添加到“留言簿”\u security)来获取“留言簿”数据库中的所有文档请参见下面的代码:
$scope.login = function(){
var url = "https://sub.iriscouch.com/guestbook/_all_docs";
$http({
url: url,
method: 'GET',
params: {
include_docs: true,
},
withCredentials: true,
headers: {"Authorization": auth_hash($scope.uname, $scope.upass)}
})
.success(function(data, status, headers, config){
$scope.book = data.rows;
console.log($scope.book);
});
}
function auth_hash(username, password)
{
return "Basic" +btoa(username + ":" + password);
}
但每次我访问“\u all\u docs”时,我都会收到一个未经授权的错误。我用来访问的用户名已作为成员添加到留言簿数据库的安全文档中。
有人能帮忙吗。我做错了什么。您是否在_安全对象中添加了不带org.couchdb.user前缀的用户名
我很容易理解你的代码,但没有发现明显的错误。我建议您使用Postman(Chrome应用程序)或类似软件测试API调用,以了解问题是由客户端还是服务器端引起的 401表示coach无法登录用户,而不是不允许用户访问数据库 编写代码示例时可能出现复制/粘贴错误,但它看起来像您的行:
return "Basic" +btoa(username + ":" + password);
返回字符串中的Basic
和哈希之间缺少空格:
return "Basic " +btoa(username + ":" + password);
这意味着您的授权
标题不正确
但是,您的第一个代码块似乎成功地使用了相同的功能,因此我正在抓紧救命稻草。您好,非常感谢您的回复。我使用Futon管理面板将用户添加到_安全文档中。这有什么区别吗?我是否正确地验证了它?我每次都是这样做的。只需确保添加“bob”而不是“org.couchdb.user:bob”。在Postman中,您还可以添加凭据—当调用成功时,您可以在代码中调查问题—否则您必须更仔细地查看服务器端配置。