2012-03-13 3 views
2

Каков наилучший подход для разработки веб-приложения с CouchDB, в котором фронт-пользователи должны войти в систему [например, форум]? Для этого мне нужен механизм аутентификации для проверки имени пользователя и пароля и хранения их в сеансе/cookie.FrontEnd-Login with CouchDB

Как я могу понять, что в CouchDB? Есть ли способ запустить серверный код непосредственно на кушетке? Нужен ли мне дополнительный программный компонент, например node.js или php-интерпретатор?

Большое спасибо.

ответ

0

Хотя у меня нет прямого опыта работы с couchDB, насколько я знаю его базу данных, а это значит, что вам обязательно понадобится серверный язык для взаимодействия с ним из браузера. Node.js и php - возможные варианты в этом случае (хотя я думаю, что couchdb имеет чрезвычайно хорошую поддержку для node.js, хотя я могу ошибаться). В любом случае, здесь есть возможная настройка в node.js: http://artem.posterous.com/nodejs-authentication-with-couchdb-and-expres

+0

Спасибо за ваш ответ. CouchDB может напрямую доставлять HTML и создавать полные приложения самостоятельно с помощью встроенных функций show и list-functions. Посмотри здесь (приложение): http://couchbuch.iriscouch.com/kassenbuch/_design/buchhaltung/index.html и здесь (кушетка) http://couchbuch.iriscouch.com/_utils /document.html?kassenbuch/_design/buchhaltung И, конечно же, вы можете опросить мнения, которые вы определили с помощью функций map/reduce через простой JavaScript. Но я не могу найти что-нибудь, чтобы запустить простой серверный код. –

+0

Мой плохой плохой, я знал, что мы смотрели на couchDB vs mongoDB для нашего решения noSQL, которое мы предлагаем нашим клиентам, хотя я только участвовал в исследовании mongoDB после того, как выбор уже был сделан, поэтому я предположил, что couchDB был довольно схожим в его настроить. В этом случае я надеюсь, что кто-то сможет дать вам более релевантный ответ. –

+0

Нет, это не так, вы можете использовать, но вам не нужен какой-либо серверный язык для взаимодействия с CouchDB с учетом его природы. см. http://couchdb.apache.org/: '' 'CouchDB - это база данных, которая полностью охватывает веб-страницы. Храните данные в документах JSON. Получите доступ к своим документам через веб-браузер через HTTP. Запросить, объединить и преобразовать ваши документы с помощью JavaScript. '' ' – rekinyz

0

Couchdb может справиться с этим для вас. Он будет выполнять аутентификацию уровня кушетки и аутентификацию уровня базы данных.

В основном существует _users db, в котором есть все ваши пользователи, и вы можете установить пользователей в документе _security для защиты базы данных.

Для обеспечения безопасности на уровне документа вам необходимо сыграть свою роль. Мне сказали, что это не рекомендуется, и здесь предпочтение отдается базе данных для каждой модели пользователя.

Вы также можете использовать BrowserId (Persona) https://github.com/iriscouch/browserid_couchdb

Kan.so имеет некоторые хорошие пакеты для создания пользователей с переднего конца, если вы строите couchapp и хотели бы управление пакетами.

1

Теперь вы хотите проверить новый проект Hoodie на http://Hood.ie.

Она включает в себя API для управления учетными записями пользователей CouchDB в том числе:

// sign up 
hoodie.account.signUp('[email protected]', 'secret'); 

// sign in 
hoodie.account.signIn('[email protected]', 'secret'); 

// sign out 
hoodie.account.signOut(); 

// change password 
hoodie.account.changePassword('currentpassword', 'newpassword'); 

// change username 
hoodie.account.changeUsername('currentpassword', 'newusername'); 

// reset password 
hoodie.account.resetPassword('[email protected]'); 

// destroy account and all its data 
hoodie.account.destroy(); 

// find out who the currently logged in user is (returns undefined if none) 
hoodie.account.username; 

И события ...

// user has signed up (this also triggers the authenticated event, see below) 
hoodie.account.on('signup', function (user) {}); 

// user has signed in (this also triggers the authenticated event, see below) 
hoodie.account.on('signin', function (user) {}); 

// user has signed out 
hoodie.account.on('signout', function (user) {}); 

// user has re-authenticated after their session timed out (this does _not_ trigger the signin event) 
hoodie.account.on('authenticated', function (user) {}); 

// user's session has timed out. This means the user is still signed in locally, but Hoodie cannot sync remotely, so the user must sign in again 
hoodie.account.on('unauthenticated', function (user) {}); 
2

Superlogin является новым NodeJS войти в структуру, которая поддерживает CouchDB логины.

Недавно я включил этот новый API аутентификации в одно из моих мобильных приложений, и это было очень легко сделать. Четкая документация и демо-код приложения были отличными стартерами. Хотя только недавно открытые источники, зрелость кода и охват тестирования чувствуют себя так, как будто они используются в производстве некоторое время. Разработчик был очень полезным и отзывчивым.

  • Обширный серверный API и дополнительный пользовательский API-интерфейс.
  • Всестороннее демо приложение.
  • Поддерживает локальное имя пользователя/пароль, сброс пароля, обновление пароля, обновление профиля пользователя.
  • Прикрепите любое количество социальных логинов OAuth (Facebook, Twitter, Google и т. Д.) К учетной записи пользователя. Использует PassportJS, которые поддерживают более 300 модулей аутентификации.
  • Можно интегрировать SendGrid API проверить электронную почту и отправлять другие уведомления о событиях пользователя
  • генерируют временный длинный и случайный пользователь CouchDB/пароли в сеансе пользователя так что вы можете скопировать в PouchDb с помощью Basic Auth непосредственно на сервер CouchDB, но со значительно улучшился безопасность.
  • 100% печенье бесплатно, предотвращающие CSRF атак
  • Быстрые и масштабируемые с опциональным Redis сессии магазина
  • Всестороннее набора тестов.

Полностью открытый исходный код и лицензия MIT: