Мне нужно добавить многопользовательскую возможность в одностраничное мобильное приложение, разработанное с помощью Ionic 1, PouchDB и CouchDB. После прочтения многих документов я запутался в том, что было бы лучшим выбором.
О моем приложении:
он должен иметь возможность работать в автономном режиме, а затем синхронизироваться с сервером в режиме онлайн (поэтому я использую PouchDB и CouchDB, которые до сих пор отлично работают)
это должно позволить пользователю создать учетную запись с именем пользователя и паролем, которые затем будут храниться в приложении, чтобы ему не приходилось снова входить в систему всякий раз, когда он запускает приложение. Эта учетная запись обеспечит синхронизацию его данных на сервере в безопасном месте, чтобы другие пользователи не могли получить к ним доступ.
в настоящее время нет необходимости обмениваться информацией между пользователями
На основании того, что я прочитал, я думаю о следующем:
- на сервере иметь одну базу данных на пользователя, хранящую его собственные данные
- на сервере есть основная база данных, в которой хранятся все данные всех пользователей, а также проектная документация. Это позволяет легко изменять проектные документы в одном месте и реплицировать их в каждой пользовательской базе данных (а затем в базе данных PouchDB в приложении). Синхронизация данных между главной и пользовательской базами данных выполняется через фильтр, так что только документы, принадлежащие одному пользователю (через некоторое поле
userId
), реплицируются только в базу данных этого пользователя. - используйте другой модуль/плагин (SuperLogin? nolanlawson/pouchdb-authentication?) для управления пользователями из приложения (создание пользователя, вход в систему, выход из системы, сброс пароля, уведомление по электронной почте о потере пароля, ...)
Мои вопросы:
как вы думаете, эта архитектура подходит, или вы можете порекомендовать что-то лучше?
какое программное обеспечение вы бы порекомендовали для управления пользователями? SuperLogin выглядит великолепно, но его нужно запускать на отдельном HTTP-сервере, что усложняет архитектуру. Создает ли он автоматически новую базу данных для каждого нового пользователя (я так не думаю)? Nolanlawson/pouchdb-authentication предназначен только для клиента, но подходит ли он для Ionic 1? Разве вокруг этого не нужно разрабатывать МНОГО вещей, которые выходят из коробки с SuperLogin? Вы имеете в виду какой-либо другой модуль?
Заранее большое спасибо за вашу помощь!