繁体   English   中英

在 flask 应用程序中使用 Google 服务帐户进行身份验证并在 Google App Engine 上部署

[英]Authentication using Google Service Account in a flask app and deploying on Google App Engine

以下是我的要求。

  • 开发 flask 应用程序。
  • 在应用程序中使用 firebase 中的 collections。
  • 使用标准服务帐户在 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 身份验证应用于根/端点。 即,如果用户提供了一个有效的密钥。json,只有这样才应该显示Welcome to my first app 否则,需要显示Unauthorized user消息。

正如@Gaefan 和@DishantMakwana 以及本文档所述:

API 密钥仅标识应用程序,不需要用户身份验证。 访问公共数据就足够了。

因此,为了验证/授权您的用户,您应该重新考虑您的策略。 我建议您按照最终用户身份验证文档中的说明进行操作。

我发现我们可以使用 Google Cloud Endpoints 进行 API 管理。 用作魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM