Разрешить незарегистрированным пользователям запрашивать Firestore, чтобы проверить, существует ли E-Mail - PullRequest
0 голосов
/ 16 января 2020

Прямо сейчас, в моих правилах Firestore, только зарегистрированные пользователи имеют доступ на чтение / запись к моему проекту. Однако в процессе регистрации я также хочу проверить, существует ли уже электронная почта, что означает, что анонимный пользователь также имеет доступ к моим данным «пользователей».

Я не уверен, насколько это соответствует требованиям безопасности. Должен ли я создать что-то вроде коллекции «электронных писем» и дублировать все адреса электронной почты здесь и разрешить анонимным пользователям запрашивать это?

1 Ответ

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

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

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

match /emails/{email} {
  // Applies to single document read requests
  allow get: if <condition>;

  // Applies to queries and collection read requests
  allow list: if false;
}

Это означает, что как только пользователь набрал указанный c адрес электронной почты, вы можете проверить, существует ли документ для этого адреса электронной почты. Но они не могут просто получить все документы из коллекции, чтобы очистить вашу базу пользователей.

...