Firebase 中的自定义 authDomain
Posted
技术标签:
【中文标题】Firebase 中的自定义 authDomain【英文标题】:Custom authDomain in Firebase 【发布时间】:2017-04-12 21:02:01 【问题描述】:我正在为 SPA 使用 Firebase 的内置 oAuth 功能。
这个 SPA 在它自己的域上,比如foobar.com
问题是,当打开 oauth 弹出窗口时,使用的是旧的 foobar.firebaseapp.com
域,而不是新的 foobar.com
域
我的初始化看起来像这样
firebase.initializeApp(
apiKey: '...',
authDomain: 'foobar.firebaseapp.com',
databaseURL: 'https://foobar.firebaseio.com',
storageBucket: 'foobar.appspot.com',
messagingSenderId: '123456'
)
我猜authDomain
可能与它有关,但如果我将其更改为foobar.com
我会收到错误:
code: "auth/popup-closed-by-user", message: "The popup has been closed by the user before finalizing the operation."
简而言之,我是否缺少为 Firebase 自定义 oAuth url 的方法?
【问题讨论】:
这对我有用***.com/questions/37344066/… 【参考方案1】:authDomain
依赖于该域上可用的特定脚本。如果您的单页应用托管在具有自定义域的 Firebase 托管上,您将能够将该域用作 authDomain
。
或者,您可以在您的域的子域上为 Firebase 托管设置一个自定义域,例如auth.foobar.com
然后你就可以使用auth.foobar.com
作为你的authDomain
。
目前不支持将非 Firebase 托管域用作您的 authDomain
。
【讨论】:
嗨迈克尔,我的自定义域在 firebase 托管,但它仍然存在这个问题。有什么方法可以进一步调试吗? 我建议 reaching out to support 为您的特定站点获取一些特定的调试帮助。 这对我有用***.com/questions/37344066/… 事实并非如此,我完全可以使用由另一个提供商托管的authDomain
。请参阅下面@kip2 的答案【参考方案2】:
我在Google OAuth 2 authorization - Error: redirect_uri_mismatch 中看到了很多答案,指出需要设置自定义域授权、检查 HTTP/S URI 方案等(我已遵循其中的大部分,包括确保我的自定义域在Firebase 托管、Firebase 身份验证,甚至在 GCP 身份平台“授权域”设置 (https://console.cloud.google.com/customer-identity/settings?project=\
以下Authorisation Error
消息显示在“使用 Google 登录”弹出窗口中:
Error 400: redirect_uri_mismatch
The redirect URI in the request, https://<project-id>.firebaseapp.com/__/auth/handler, does not match the ones authorized for the OAuth client. To update the authorized redirect URIs, visit: https://console.developers.google.com/apis/credentials/oauthclient/$your_client_id?project=$your_project_number
经过大量挖掘,我意识到我需要将“授权重定向 URI”的值设置为 https://<my-auth-subdomain>.mydomain.org/__/auth/handler
,引用我的自定义域。请参阅以下附件。
这对我来说并不是很明显,但我还必须在由 Google 服务自动生成的 OAuth 2.0 客户端 ID 上进行上述设置。在related answer 之后,我最初创建了一个新的客户端 ID,但最终没有任何区别。
【讨论】:
你为我节省了很多时间!【参考方案3】:转到身份验证 --> 登录方法,您会将自定义域放在授权域部分下
【讨论】:
以上是关于Firebase 中的自定义 authDomain的主要内容,如果未能解决你的问题,请参考以下文章
如何获取应用了多个维度的自定义 Firebase 事件的唯一用户数?
将从 Fabric 创建的自定义事件迁移到 Firebase?