Ниже приведены мои требования.
Что я наделал.
cred = credentials.Certificate('key.json') default_app = initialize_app(cred) db = firestore.client() user_ref = db.collection_group('Users') @app.route('/', methods=['GET']) def home(): return "<h1>Welcome to my first app</h1>" @app.route('/users', methods=['GET']) def getUsers(): try: result = [user.to_dict() for user in user_ref .stream()] return jsonify(result), 200 except Exception as e: result = { "message:"failed"} return jsonify(result), 500
Я протестировал это локально, а также развернул в Google App Engine.
В обоих случаях key.json находился в том же каталоге, что и код. Я подтвердил, что если этот key.json изменен для хранения неправильных данных, то конечная точка / users не будет работать и выдает ошибку 500.
Все идет нормально. Я хочу знать, правильный ли это подход.
Welcome to my first app.
В противном случае необходимо отобразить сообщение Unauthorized user.Из вашего вопроса неясно, что вы хотите делать. Похоже, что «key.json» сохранен в исходном коде вашего приложения. Вы ожидаете, что пользователь предоставит json-контент? Как упоминалось в @gaefan, вы обычно не используете key.json для аутентификации пользователей.





Как упоминалось @Gaefan и @DishantMakwana, а также в этом документация:
An API key only identifies the application and doesn't require user authentication. It is sufficient for accessing public data.
Итак, чтобы аутентифицировать / авторизовать своих пользователей, вам следует пересмотреть свою стратегию. Я бы порекомендовал вам следовать инструкциям в Аутентификация в качестве конечного пользователя Документация.
Поскольку это очень простая аутентификация, они необходимы, мой менеджер согласился на использование ключа API.
Кроме того, мы используем секретный менеджер для хранения этих ключей api.
Я получил довольно хорошее представление о том, как использовать механизмы аутентификации. Я тоже скоро попробую oauth.
хорошо, пока вы знаете ограничения и риски, вы можете следовать по этому пути, важно отметить, что предоставлять каждому пользователю вашего приложения key.json довольно непрактично, в зависимости от количества пользователей и структуры приложения.
Кроме того, я нашел эту ссылку. youtube.com/watch?v=4HAbnin3nto Это тоже может быть полезно. Я смотрю на это сейчас.
key.json- это не то, что обычно используется для аутентификации конечных пользователей. Думаю, вам нужно пересмотреть схему аутентификации.