Использование HttpsCallable с учетными данными службы - PullRequest
0 голосов
/ 04 апреля 2020

Я использую кучу функций HttpsCallable, которые используются клиентом для безопасного вызова вещей на сервере. Теперь я нахожусь в ситуации, когда бэкэнд (другая облачная функция) должен был бы запускать некоторые из тех же операций, поэтому в идеале я бы просто вызвал HttpsCallable из другой облачной функции.

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

Можно ли как-то обойти это? Может быть, я могу использовать учетные данные службы, чтобы идентифицировать себя и предоставить нужную полезную нагрузку вручную, используя обычный интерфейс облачных функций HTTP?

1 Ответ

0 голосов
/ 04 апреля 2020

Если вам нужно вызвать вызываемую функцию из среды, в которой нет клиентской библиотеки, вы можете написать собственный код, соответствующий спецификации протокола для вызываемых функций . Это в основном просто запрос POST с определенным заголовком и телом запроса. Аутентификация будет затруднена, если у вас нет идентификационного токена, предоставленного конечному пользователю. Учетные записи служб не помогут вообще - аутентификация предоставляется только для пользователей Firebase Auth.

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

Если вы хотите sh ограничить доступ к функции HTTP для учетных данных учетной записи службы, вам придется go пройти долгий путь понимания и настройка разрешений IAM для облачных функций с использованием документации Google Cloud. Firebase CLI также развертывает функции с доступом «allUsers», чтобы они были доступны для мобильных и веб-клиентов - вместо этого вы не можете защитить функции для внутреннего использования.

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