【发布时间】:2021-04-10 03:18:22
【问题描述】:
在我的 Firebase 应用中,我想知道代表已登录用户(通过 ID 令牌进行身份验证)向 Cloud Storage for Firebase 发出服务器端请求的推荐方式,并将安全规则应用于请求(即不使用 Admin SDK)。
目前整个应用流程如下所示:
- 用户登录客户端并向 Google Cloud API 网关发出请求,并在请求标头中发送其ID token
- API 网关 authenticates user 并将请求转发到后端 API 中的不同端点:
- 如果是Firebase身份验证的请求,API使用Auth Admin SDK直接处理
- 如果是Firestore,API使用API网关转发的
x-forwarded-authorization请求头(包含客户端最初提供的ID令牌)向Firestore's REST API发出请求,以便可以通过安全规则评估请求。
对于 Cloud Storage,我想做类似于上述 Firestore 案例的操作,但文档中没有特定于 Firebase 的 REST API。可以只让客户端直接向 Firebase 发出请求(如 answer 中所建议的那样),但更愿意将逻辑保留在后端。
对于存储是否有替代方法?请随时指出是否有更好的方法来处理上述 Firebase Auth 和 Firestore 案例。谢谢!
编辑:在我找到它们时添加更多可能的解决方案
- Doug 的回答 here 和 Frank 的回答 here 建议使用 Cloud Storage REST API,应用程序会在该 API 中为用户和 makes the request 生成 OAuth 令牌
- 这个答案here 提到可以将
auth=IDTOKEN查询参数传递给Firebase REST API:
获得 ID 令牌后,您可以通过 auth 查询参数来验证请求。请求尊重 Firebase 安全规则,就像登录客户端的最终用户是 提出请求。
【问题讨论】:
-
您好,弗兰克,抱歉耽搁了。现在会回复他们!
标签: node.js firebase google-cloud-firestore firebase-authentication