Проверка идентификаторов: каков рабочий процесс для использования этой проверки Firebase? - PullRequest
0 голосов
/ 07 марта 2020

Несколько месяцев go Даг Стивенсон сказал мне использовать проверку Firebase, посвященную «проверке токенов ID»: https://firebase.google.com/docs/auth/admin/verify-id-tokens

Я прочитал do c. Я понял следующее: я не могу доверять приложению Android, когда оно сообщает серверу (правила Firebase Firestore, правила Firebase Firestorage, облачные функции) идентификатор пользователя, поскольку оно может принимать существующий идентификатор, отличный от фактического собственного идентификатора, и объявить его. Поэтому я должен использовать систему токенов, предложенную в do c.

. Я также понял, что я должен получить токен сразу после успешного входа пользователя. Затем я отправляю его на сервер. и это "проверяет это". Но тогда ... что? Хорошо, сервер проверяет это. Но результат этой проверки, что сервер должен делать с ним?

Должен ли я все это сделать (отправить токен на сервер, проверить его на стороне сервера, сделать что-нибудь на стороне сервера с результатом этой проверки) перед каждым вызовом, сделанным приложением Android на сервер?

Примеры:

  • if Мой Android пользователь хочет отредактировать свою учетную запись, он заполнит форму (имя, возраст, код банка, аватар изображения). Эти данные будут отправлены в Firestore и Firestorage, поэтому их правила будут выполнены; UID пользователя должен быть передан, но на самом деле это должен быть токен, нет? (поскольку Android приложение может l ie на UID, отправив поддельный UID, если это хакер, см. начало этого SO вопроса).

  • , если мой * Приложение 1037 * отправляет данные в Cloud Functions, которые обрабатывают их и сами сохраняют в Firestore и Firestorage. Стоит ли мне использовать систему токенов?

1 Ответ

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

При прямой записи в Firestore или Cloud Storage пользователь не может подделать отправку UID, отличного от его собственного. Пока ваши правила безопасности проверяют это правильно, у вас не будет проблем. Есть примеры того, как это работает в документации . Нет необходимости проверять токены ID при использовании правил безопасности для контроля доступа - все это обрабатывается автоматически.

Вы используете Firebase Admin SDK для проверки токена в том месте, где ваше клиентское приложение напрямую вызывает HTTP type function, и эта функция должна гарантировать, что только действительным пользователям разрешено выполнять код. Клиент отправляет токен пользователя вместе с запросом, как показано в документации, которую вы связали, и код на сервере должен проверить токен перед выполнением какой-либо работы от имени пользователя. Нет необходимости пытаться передать идентификационный токен в любом другом типе облачной функции.

...