You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase多租户禁用用户注册所需权限及JWT签名错误排查

Firebase多租户禁用用户注册的权限要求与JWT签名错误修复

一、禁用用户注册所需的特定权限

要通过Patch请求修改租户的disabled_user_signup配置,服务账号需要具备以下权限:

  • 核心权限:firebaseauth.configs.update
  • 对应预定义角色:Firebase Authentication Admin(roles/firebaseauth.admin)

注意:

  • 确保角色绑定在项目级别,而非仅租户级别(部分细粒度权限需项目级授权覆盖)
  • 若使用自定义角色,必须包含firebaseauth.configs.update权限,且角色资源范围需覆盖目标项目及租户

二、JWT签名错误(Invalid JWT Signature)的解决方法

针对你遇到的invalid_grant错误,按以下步骤排查修复:

  1. 验证服务账号密钥文件
    • 确认使用的是目标项目的有效服务账号JSON密钥,而非其他项目、过期或已撤销的密钥
    • 检查密钥文件中的private_key字段是否完整,无换行或字符缺失
  2. 校准系统时间
    • 本地服务器/运行环境的系统时间需与谷歌服务器时间同步(偏差不能超过5分钟),否则JWT会被判定为过期或未生效
  3. 检查SDK与签名算法
    • 使用官方Firebase Admin SDK生成令牌,避免手动构造JWT(谷歌要求使用RS256签名算法,手动构造易出错)
    • 确保SDK版本为最新,旧版本可能存在签名逻辑bug
  4. 确认OAuth作用域正确性
    • 你使用的https://www.googleapis.com/auth/firebase作用域是正确的,需确保生成令牌时未添加不必要的作用域限制
  5. 等待IAM权限同步
    • 修改服务账号角色后,谷歌IAM权限可能需要数分钟生效,若刚修改完角色就测试,需等待权限同步完成

请求参考信息

  • 请求方法:Patch
  • 请求URL:https://identitytoolkit.googleapis.com/v2/projects/%s/tenants/%s?updateMask=client
  • 请求体:
{"client": {"permissions": {"disabled_user_signup": true,"disabled_user_deletion": false }}}
  • OAuth作用域:https://www.googleapis.com/auth/firebase

内容的提问来源于stack exchange,提问作者Eddie Ayling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:33:27