подключитесь к firebase с помощью ключа API и пароля пользователя приложения

# #python #firebase #firebase-authentication

Вопрос:

Я работал с подключением firebase из приложения и с внутреннего сервера, используя SDK администратора.

Firebase admin SDK использовал ключ учетной записи службы для подключения к серверной части firebase. Вот мой пример использования: у меня есть пакет python, который будет использоваться клиентом, здесь я не хочу использовать ключ учетной записи службы и SDK администратора. Я хотел использовать ключ API , и если пользователь введет действительное имя пользователя и пароль приложения (при условии, что пользователь уже зарегистрирован), пользователь получит доступ к серверной части firebase. (Очевидно, в соответствии с правилами безопасности)

Я не могу найти способ доступа к серверной части firebase с помощью ключа API и имени пользователя/пароля приложений из скрипта python. Если кто-нибудь знает об этом, пожалуйста, помогите мне в этом.

Ответ №1:

Пакет SDK администратора, предоставляемый Firebase для Python, предназначен только для использования в надежных средах и не позволяет входить в систему с именем пользователя/паролем. Весь код, использующий SDK администратора, обращается к Firebase с правами администратора, поэтому он не подходит для вашего варианта использования. Сама Firebase не предоставляет SDK для доступа на стороне клиента с использованием Python. Таким образом, единственный оставшийся вариант, который предоставляет Firebase, — это вызвать REST API из вашего кода.

Существует сторонняя библиотека под названием Pyrebase, которая позволяет вам входить в систему пользователей (используя REST API, упомянутый выше).:

 # Get a reference to the auth service
auth = firebase.auth()

# Log the user in
user = auth.sign_in_with_email_and_password(email, password)
 

Комментарии:

1. Спасибо за помощь, способ REST API сработал для меня. Используя rest api, я получил ApiKey (jwtToken) и токен обновления. Затем авторизовал следующие запросы, используя его. Эта библиотека также является хорошим вариантом, но позже я хотел войти в систему с помощью facebook/gmail/github и т. Д., Которые не поддерживаются в этой библиотеке. Еще раз огромное вам спасибо.

Ответ №2:

ЕСЛИ вы хотите контролировать внутренний доступ с помощью ключа API — вы не можете.

В отличие от того, как обычно используются ключи API, ключи API для служб Firebase не используются для управления доступом к внутренним ресурсам; это можно сделать только с помощью правил безопасности Firebase (для контроля доступа пользователей к ресурсам) и проверки приложений (для контроля доступа приложений к ресурсам).

согласно документам

Комментарии:

1. да, для контроля внутреннего доступа я буду использовать правило безопасности. Но здесь я хотел сделать то, что делает типичное приложение firebase. Мы предоставляем ключ API для приложения, затем пользователь входит в систему, а затем этот пользователь получает доступ к firestore (скажем, для создания поста). Мое требование состоит в том , что я хочу сделать нечто подобное из кода python, а не из кода приложения (веб/android/ios).

2. О, хорошо, я думаю, что понимаю тебя. Я думал, ты хочешь чего-то другого.

3. Использование аутентификации firebase в приложении python для получения пользователя.

4. @HarisWilson, Да, точно, вы знаете, как это сделать ?