2013-10-15 4 views
1

Я звоню следующий код:

$.couch.login($.extend({ name: "harry", password: "secrets"}, callback)); 
$.couch.session(callback); 

где «гарри» просто фиктивный пользователь я создал с помощью $.couch.signup и callback является простой задачей определения успеха/ошибка/полные функции с такими органами, как это:

success: function (data) { 
    console.log('Success'); 
    console.log(data); 
} 

Этот код возвращает следующее:

Success 
Object {ok: true, name: "harry", roles: Array[0]} 

Success 
Object {ok: true, userCtx: Object, info: Object} 

Первое возвращение хорошее, но второе, одно от session, userCtx объект в основном пуст, с именем null.

Кроме того, когда я пытаюсь войти в систему, используя свой личный логин и пароль (те, которые я использую в качестве футон администратора), это возвращается:

Success 
Object {ok: true, name: null, roles: Array[1]} 
(0: "_admin") 

Success 
Object {ok: true, userCtx: Object, info: Object} 

и увлекательно, первый запрос знает, кажется, знаю я 'admin, но не получает никаких других данных, а второй запрос делает то же, что и в предыдущем примере.

Любые мысли? Я не правильно использую $.couch.session? Что-то не так с моим экземпляром кубка?

FYI Я использую версию 1.4.0 и построен из источника.

+0

Я также обнаружил, что работает '$ .couch.db («_ пользователи»). OpenDoc ('org.couchdb. user: '+ data.name, callback); 'из метода' success' вызова '$ .couch.login' не находит запись пользователя, когда он должен быть _should_, но он корректно работает от curl, когда соответствующее' username : password @ 'добавляется в' localhost'. Я действительно думаю, что этот '$ .couch.session' меня каким-то образом ввергает. – blaineh

+0

Должен ли я делать то, что вручную передает cookie аутентификации? Мне кажется, что об этом позаботится библиотека '$ .couch'. – blaineh

ответ

1

Получается, что мне действительно нужен был apache reverse proxy. Экземпляр кушетки не имел доступа к файлу cookie AuthSession, поскольку он поступал из порта 5984. Теперь все отлично работает со следующим добавил к моему apache2.conf (может быть httpd.conf для некоторых)

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so 
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so 
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 

ProxyPass /_couch http://localhost:5984 nocanon 
ProxyPassReverse /_couch http://localhost:5984 
+0

[nginx] (http://nginx.com/resources/admin-guide/reverse-proxy/) работает так же хорошо, кстати. Наличие всего того же домена устранило мои многочисленные проблемы. – fet

Смежные вопросы