Javascript couchDB 401错误

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

我有一个叫做“留言簿”的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.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中,您还可以添加凭据—当调用成功时,您可以在代码中调查问题—否则您必须更仔细地查看服务器端配置。