Firestore, как обезопасить ввод пользователя? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь сохранить весь свой бэкэнд в Firestore.

Каждый раз, когда пользователь входит в систему, я хотел обновить lastConnectionDate в коллекции users.

MyПроблема в том, что все эти данные отправляются через Javascript, поэтому небезопасно.Как я могу быть уверен, что пользователь не обманет и не скажет, что его lastConnectionDate был 50 лет назад?

С «классическим» бэкэндом я просто добавил бы текущую дату бэкэнда, не прося его предоставить.

Как я могу защитить этот процесс с помощью Firebase / Firestore?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Существует специальное значение FieldValue.serverTimestamp() маркера для установки даты на стороне сервера в операциях записи Firestore.

В правилах безопасности есть специальная переменная request.time, который содержит текущее время.

Сравнивая эти два в ваших правилах безопасности, вы можете проверить, что любое записанное значение совпадает с текущим временем на сервере.

0 голосов
/ 28 февраля 2019

Используйте функцию firebase, чтобы установить lastConnectionDate.Возможно использование триггеров аутентификации

https://firebase.google.com/docs/functions/auth-events

...