CouchDB предлагает проверку перед тем, как разрешить вставку объекта / строки в базу данных.Это гарантирует, что если у вас есть общедоступное приложение для кушетки, ваша база данных не будет заполнена мусором никем.
User <-> CouchDB
Однако я постараюсь выяснить, как это выглядитИсходя из стандартного процесса разработки приложений, где у вас есть доверенный средний уровень, который выполняет большую часть работы по аутентификации .Например, большинство приложений помещают Ruby или PHP между базой данных и пользовательским агентом, что позволяет приложению выяснить информацию о пользовательском агенте, прежде чем разрешить сохранение чего-то вроде сообщения в базе данных.
User -> Ruby -> MySQL
User <- Ruby <- MySQL
Как вы доверяете пользователю выполнять административные задачи, когда ему нельзя доверять?
Например, как бы вы сделали что-то вроде «проверки электронной почты» перед вставкой строки пользователя с помощьюпросто couchDB?Вы не можете позволить пользовательскому агенту вставить строку - потому что они будут заполнять систему учетными записями спама.С другой стороны, нет среднего слоя, который мог бы вставить строку после того, как они нажмут на ссылку в электронном письме.
Как насчет этого, я бы предположил, что вы позволите кому-либо вводить свою электронную почту, создаваяновая запись в общедоступной таблице, например email_verify
.Это то, что может сделать общедоступный пользовательский агент, поскольку таблица ничего не сделает в приложении - это будет просто резервный резервуар.
Тогда node.js может отслеживать канал _changes и отправлять электронное письмо активации, покасоздание новой записи в закрытой таблице (например, email_confirm
) (node.js будет служить доверенным промежуточным уровнем).Если пользователь щелкает эту ссылку и возвращается, то ... [unknown] ... и node.js может, наконец, создать запись в личной таблице пользователя (user
).
На этом этапе мы можемзатем положитесь на проверку couchdb для остальной части приложения, поскольку мы создали подтвержденную учетную запись пользователя.
В качестве дополнительной справки давайте представим обсуждение, основанное на couchdb, на которое любой может зарегистрироваться.Мы не хотим позволять кому-либо напрямую отправлять контент без какой-либо проверки - но все пользовательские агенты напрямую запускают систему .(Таблицы будут Thread
, Comment
, & User
).Как это будет работать?