Регистрация пользователя для PouchDB / CouchDB / с Electron - PullRequest
1 голос
/ 17 января 2020

Я создаю настольное приложение Electron , и одной из первых вещей, которыми я хочу заняться, является создание пользователя для взаимодействия с БД. Идея состоит в том, что они входят в систему, а затем они могут видеть свою собственную информацию пользователя в приложении. Насколько я понимаю, я могу сделать это в pouchDB, и это в конечном итоге будет синхронизироваться c с удаленным сервером CouchDB.

Я застрял при создании пользователя (я еще даже не начал заниматься сессиями пользователей) , Я создал форму html с Electron, которая принимает электронную почту, имя пользователя и пароль. Я планирую использовать PouchDB для локального хранения информации и в конечном итоге синхронизировать c с сервером CouchDB. Я еще не написал JS для обработки формы. Когда они нажимают «Зарегистрироваться», я хочу, чтобы этот пользователь был создан.

Я запутался, потому что в CouchDB есть база данных _users, которая, как я понимаю, хранит конфиденциальную информацию пользователя (например, пароль).

Мой вопрос: Когда пользователь отправляет вышеупомянутую форму, я создаю базу данных в PouchDB с именем _users? И в конце концов, когда я синхронизирую c с CouchDB, он автоматически узнает, какую информацию хранить у пользователей?

Ответы [ 2 ]

1 голос
/ 17 января 2020

Если CouchDB будет на Inte rnet (а не на Intr anet, с доступом только у доверенных пользователей), то я бы рассмотрел процесс на стороне сервера для обработки регистраций. Этот серверный процесс является единственным, которому требуется знать имя пользователя / пароль администратора, позволяющее ему добавлять пользователей в таблицу couchDB _users (как описано в ответе от uminder ).

Т.е. напишите пользовательскую регистрацию как обычный веб-сайт, а в электронном приложении просто получите доступ к ней как к веб-странице.

Вы можете создать приложение Electron и отправить специально подписанного повара ie, который остановит пользователи приложения, имеющие доступ к этой странице.

Ограничение доступа этим поваром ie должно дать вам хороший контроль над злоупотреблениями. Но при наличии процесса веб-сервера у вас все еще есть все возможности для добавления шага подтверждения по электронной почте, ограничения по IP-адресу, ограничения скорости и т. Д. c. (или даже, если это действительно необходимо, добавьте Cursed Captcha в форму).

Другое преимущество этого подхода заключается в том, что вам не нужно жестко кодировать имя пользователя / пароль администратора CouchDB в приложении Electron.

1 голос
/ 17 января 2020

Вы должны использовать PouchDB только в том случае, если должна быть возможность автономной работы с вашим приложением. В противном случае это делает код ненужным более сложным, но не приносит никаких реальных преимуществ в вашем случае. Просто получите доступ к CouchDB напрямую через HTTP API.

CouchDB различает два типа пользователей

  1. администраторы хранятся в разделе [admins] конфигурации файл $ COUCHDB_HOME / etc / local.ini. При настройке вашей CouchDB вам предлагается определить первого пользователя-администратора. Дополнительные пользователи-администраторы могут быть созданы позже (см. Создание нового пользователя-администратора ).
  2. обычные пользователи хранятся в базе данных аутентификации с именем _users. Пользовательские документы содержат системную информацию, такую ​​как логин, пароль ha sh и роли, но могут также содержать личную информацию, такую ​​как настоящее имя, адрес электронной почты, телефон и т. Д. c. Создание нового обычного пользователя тривиально (см. Создание нового пользователя ).
...