在登录时显示自定义域名
本文档介绍如何自定义 Identity Platform 身份验证处理程序,以便用户登录时看到您的网域。
了解默认身份验证处理程序
在您为项目启用 Identity Platform 时,系统会自动创建由 Firebase 托管提供支持的唯一子网域。网域的格式为 https://[PROJECT-ID].firebaseapp.com
。默认情况下,Identity Platform 会使用此网域来处理所有 OAuth、OIDC 和 SAML 登录重定向。
使用默认网域具有多项优势:
设置更简单
将多个域名用于相同的联合提供商
在不同的服务和网域之间共享一个回调网址
使用每个应用仅支持一个回调网址的提供商
默认处理程序的缺点是,用户会在登录时短暂看到 https://[PROJECT-ID].firebaseapp.com
网址。
自定义身份验证处理程序
要替换默认处理程序并提供您自己的处理程序,请执行以下操作:
将您的项目连接到自定义网域。您需要使用 Firebase 控制台来完成以下步骤;不支持使用 Google Cloud CLI 或 Google Cloud 控制台。
前往 Google Cloud 控制台中的身份提供商页面,然后选择您的 SAML 提供商。转到“身份提供商”页面
将自定义网域添加到已获授权的网域列表中。
向您的身份提供商更新回调网址,以使用自定义网域,而不是默认网域。例如,将
https://myproject.firebaseapp.com/__/auth/handler
更改为https://auth.mycustomdomain.com/__/auth/handler
。点击保存。
更新客户端 SDK 配置
Web
通常,您可以从 Google Cloud 控制台复制客户端 SDK 的初始化代码。如果您自定义身份验证处理程序,则需要将 authDomain
字段更新为您的自定义网域:
Web 版本 9
import { initializeApp } from "firebase/app"; const firebaseConfig = { apiKey: "...", // By default, authDomain is '[YOUR_APP].firebaseapp.com'. // You may replace it with a custom domain. authDomain: '[YOUR_CUSTOM_DOMAIN]' }; const firebaseApp = initializeApp(firebaseConfig);
Web 版本 8
firebase.initializeApp({ apiKey: '...', // By default, authDomain is '[YOUR_APP].firebaseapp.com'. // You may replace it with a custom domain. authDomain: '[YOUR_CUSTOM_DOMAIN]' });
Android 和 iOS
如需自定义身份验证处理脚本,请使用以下代码:
Java
FirebaseAuth.getInstance().setCustomAuthDomain("[YOUR_CUSTOM_DOMAIN]");
Kotlin+KTX
Firebase.auth.setCustomAuthDomain("[YOUR_CUSTOM_DOMAIN]")
Swift
let auth = Auth.auth()
auth.customAuthDomain = "[YOUR_CUSTOM_DOMAIN]"
Objective-C
FIRAuth *auth = [FIRAuth auth];
auth.customAuthDomain("[YOUR_CUSTOM_DOMAIN]");