Authentication CouchDB\u会话身份验证失败

Authentication CouchDB\u会话身份验证失败,authentication,couchdb,Authentication,Couchdb,我的应用程序是AngularJS。在我的服务中,我有几个登录功能 login: function(tag,pass) { return $http.post(this.databaseUrl + "_session/", {"name":tag,"password":pass}); }, loginGet: function() { return $http.get(this.databaseUrl + "_session");

我的应用程序是AngularJS。在我的服务中,我有几个登录功能

    login: function(tag,pass) {
        return $http.post(this.databaseUrl + "_session/", {"name":tag,"password":pass});
    },

    loginGet: function() {
        return $http.get(this.databaseUrl + "_session");
    },
在我的控制器里我有

    $scope.init = function() {
        dataFactory.login("mark","myPassword")
        .then(function (response) {
            console.log('dataFactory.login.post response...');
            console.log(response);
            dataFactory.loginGet()
            .then(function (response) {
                console.log("dataFactory.loginGet response...");
                console.log(response);
            });
        });
    };
这是我在控制台中看到的

请注意,post之后返回的角色是正确的。它们是“标记”的角色,但请注意返回的JSON中的空白名称。下面对_会话的get调用返回Ok,但名称仍然为空。所有后续对数据库的访问都返回401个“未经授权”错误,因此身份验证失败。为什么它似乎在尝试/部分验证,但实际上不是

在沙发配置中,我有

httpd部分:

  • 绑定地址=0.0.0.0
  • 启用\u cors=true
cors组:

  • 凭据=false
  • 起源=*
coach_httpd_认证部分:

  • 允许\u持久\u cookies=真
  • 身份验证\数据库=\用户
  • require\u valid\u user=false
此数据库的安全对话框看起来像

我可以绕过401错误的唯一方法是清除此对话框上的“成员名称/角色”框。这根本不是解决办法

你能看出我做错了什么吗


非常感谢你的帮助。这几天我一直在尝试,但都失败了:-/

再次回答我自己的问题。因此,对于未来的CouchDB身份验证搜索者,以下身份验证方法正在我的AngularJS应用程序中运行

    authenticate: function(user,pass) {
        return $http({
            method: "POST",
            url: this.databaseUrl + "_session",
            headers: {"Content-Type": "application/x-www-form-urlencoded"},
            data: "name=" + user + "&password=" + pass
        });
    },

那么,是所有的CouchDB专家都在度假,还是我说了错话和/或愚蠢的话-/