【发布时间】:2021-03-31 07:22:23
【问题描述】:
以下是我的要求。
- 开发一个烧瓶应用程序。
- 在应用的 Firebase 中使用集合。
- 使用标准服务帐户在 Google App Engine 上部署此应用
我做了什么。
- 创建了服务帐号
- 下载了对应的凭证json;我称它为 key.json
- 写了一个main.py
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 错误。
到目前为止一切顺利。我想知道这是否是正确的方法。
- 我希望即使对根/端点也应用 key.json 身份验证。
即,如果用户提供了一个有效的 key.json,那么只有
Welcome to my first app应该被显示。 否则,需要显示Unauthorized user消息。
【问题讨论】:
-
key.json不是通常用于对最终用户进行身份验证的东西。我认为您需要重新考虑您的身份验证方案。 -
从你的问题中不清楚你想做什么。看起来“key.json”保存在应用程序的源代码中。您是否希望用户提供 json 内容?就像@gaefan 提到的那样,您通常不使用 key.json 来验证用户。
标签: google-app-engine flask postman service-accounts