2013-09-11 1 views
1

Мое приложение - AngularJS. В моей службы у меня есть пара входа функции ...Ошибка аутентификации CouchDB

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); 
      }); 
     }); 
    }; 

Вот что я вижу в консоли ...

enter image description here

Обратите внимание, что роли, возвращаемые после сообщения, являются правильными. Это роли для «метки», но обратите внимание на пустое имя в возвращаемом json. Следующий вызов для _session возвращает Ok, но опять же имя пустое. Все последующие данные возвращаются в базу данных 401 «Несанкционированные» ошибки, поэтому аутентификация не выполняется. Почему это кажется попыткой/частичной аутентификации, но на самом деле?!?!

В конфигурации Couch У меня есть ...

HTTPD раздел:

  • bind_address = 0.0.0.0
  • enable_cors = истинный

CORS раздел:

  • учетные данные = false
  • происхождение = *

couch_httpd_auth раздел:

  • allow_persistent_cookies = истинная
  • authentication_db = _users
  • require_valid_user = ложь;

Диалог безопасности для этой базы данных выглядит ...

enter image description here

Единственный способ, которым я могу обойти 401 ошибок, чтобы очистить Пользователь имен/роли поля в этом диалоге. Это не решение.

Вы видите, что я делаю неправильно?

Большое спасибо за помощь. Я пробовал и терпел неудачу на этом в течение нескольких дней: -/

+0

Так будут все эксперты CouchDB на отдыхе или я сказал что-то не так, и/или немым? : - / – Locohost

ответ

2

Отвечая на мой вопрос снова. Так что для будущих искателей аутентификации 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 
     }); 
    },