Почему правила firebase не работают, когда я выполняю операцию kreait / firebase- php с учетной записью службы? - PullRequest
0 голосов
/ 10 марта 2020

извините за наивность. Я немного запутался в аутентификации с пакетом kreait / firebase- php. Я определил некоторые правила на консоли Firebase, например:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
     match /{document=**} {
      allow create,delete:if request.auth.uid == true;
    }

  }
}

Проблема в том, что, даже если я изменю правило, поведение служб (CRUD) будет работать одинаково. Похоже, что документ JSON (учетная запись службы, загруженная из Google) имеет все разрешения или не требует правил Firebase.

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

В настоящее время я проверяю электронную почту / пароль. Если запрос верен, метод вернет токен. После этого я сохраняю токен в CACHE и удаляю его, когда пользователь выходит из системы. С каждым запросом промежуточное ПО проверяет, существует ли токен в CACHE. Таким образом, это только поможет мне ограничить доступ пользователей к страницам. Как мне ограничить работу базы данных (CRUD)? Спасибо всем!

1 Ответ

1 голос
/ 10 марта 2020

Такое поведение ожидается. Доступ к Firestore, исходящий из кода, инициализированного с учетной записью службы, будет всегда обходить правила безопасности. Правила безопасности только применяются к доступу из веб-страниц и мобильных клиентских SDK, а также к REST API при наличии токена аутентификации Firebase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...