如何通过API为Firebase Auth多租户配置社交登录提供商?
问题:Firebase Auth多租户环境是否支持通过API配置社交登录提供商?
背景
我拥有一个白标应用,对接多个合作伙伴,每个合作伙伴可创建多个Web应用,每个Web应用拥有独立的身份认证数据库。例如:某合作伙伴创建了Web应用A和B,用户在A中注册的账号无法登录B,仅能登录A。
实现方案
我使用Firebase Auth,计划通过多租户(multi-tenancy)方案实现该需求。每个合作伙伴对应一个Firebase项目,每个Web应用关联一个租户(tenant),每个租户需配置Facebook、Google等多种社交登录提供商。
当前疑问
我可以通过控制台配置社交登录提供商,但未找到如何通过API为多租户环境批量配置的方法,仅找到无租户场景下的API配置文档。请问是否支持通过API为Firebase Auth多租户环境配置社交登录提供商?
回答
是的,Firebase Auth多租户环境支持通过API批量配置社交登录提供商,你需要使用Google Cloud Identity Platform Admin API中的租户专属端点来操作。
核心操作端点
针对租户的OAuth身份提供商配置,主要使用以下几个API端点:
projects.tenants.defaultOAuthIdpConfigs.create:为指定租户创建新的社交登录提供商配置projects.tenants.defaultOAuthIdpConfigs.update:更新已有的租户社交登录配置projects.tenants.defaultOAuthIdpConfigs.get:获取租户的指定社交登录配置
示例:为租户配置Google登录
以配置Google OAuth登录为例,你可以发送如下HTTP请求(或使用对应的SDK):
POST https://identitytoolkit.googleapis.com/v2/projects/{PROJECT_ID}/tenants/{TENANT_ID}/defaultOAuthIdpConfigs?key=YOUR_API_KEY Content-Type: application/json { "providerId": "google.com", "clientId": "YOUR_GOOGLE_CLIENT_ID", "clientSecret": "YOUR_GOOGLE_CLIENT_SECRET", "displayName": "Google" }
注意事项
- 操作前需确保你的服务账号拥有
firebaseauth.configs.update或对应的Identity Platform权限 - 不同社交提供商的配置参数略有差异(比如Facebook需要额外的
graphApiVersion),需参考官方参数定义 - 批量配置时可以通过脚本循环调用API,实现对多个租户的批量操作
内容的提问来源于Stack Exchange,提问作者Pedro Voy
相关产品推荐
相关产品推荐

