在我的前端,我使用 Firebase 身份验证和
firebaseAuth.currentUser?.getIdToken(true)
函数来获取令牌并将其作为 Authorization: Bearer {token}
标头发送到 Google 函数。
我曾经解析函数中的令牌并在函数代码中验证它。但我想启用它的
Require authentication
设置。
问题是我在这种情况下收到 Your client does not have permission to the requested URL
错误。
我尝试将
allAuthenticatedUsers
、{project}@appspot.gserviceaccount.com
和 firebase-service-account@firebase-sa-management.iam.gserviceaccount.com
主体设置为 Cloud Functions Invoker
角色,但没有帮助。
有什么办法可以做到
Require Authentication
已启用,并且GC仅允许对通过Firebase进行身份验证的用户执行该功能吗?
Google Cloud IAM 角色(例如“allAuthenticatedUsers”和服务帐户)与 Firebase 身份验证用户 ID 令牌完全无关。 它们彼此不兼容并且不能以任何方式互换。 您不能简单地替换代码来验证具有 IAM 权限的 Firebase 身份验证令牌。
实现 Firebase Auth 令牌验证的唯一方法是使用您编写的代码,通常使用 Firebase Admin SDK。