首页 > 解决方案 > 在烧瓶应用中使用 Google 服务帐户进行身份验证并在 Google App Engine 上部署

问题描述

以下是我的要求。

我做了什么。

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 错误。

到现在为止还挺好。我想知道这是否是正确的方法。

标签: google-app-engineflaskpostmanservice-accounts

解决方案


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

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

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


推荐阅读