在登录时显示自定义域名
本文档介绍如何自定义 Identity Platform 身份验证处理程序,以便用户登录时看到您的网域。
了解默认身份验证处理程序
在您为项目启用 Identity Platform 时,系统会自动创建由 Firebase 托管提供支持的唯一子网域。网域的格式为 https://[PROJECT-ID].firebaseapp.com
。默认情况下,Identity Platform 会使用此网域来处理所有 OAuth、OIDC 和 SAML 登录重定向。
使用默认网域具有多项优势:
将多个域名用于相同的联合提供商
在不同的服务和网域之间共享一个回调网址
使用每个应用仅支持一个回调网址的提供商
默认处理程序的缺点是,用户会在登录时短暂看到 https://[PROJECT-ID].firebaseapp.com
网址。
自定义身份验证处理程序
如需使用自定义处理程序替换默认处理程序,请执行以下操作:
在 Firebase 控制台中,将您的项目连接到自定义网域。
在 Google Cloud 控制台中,前往 Identity Platform > 身份提供商页面。
前往“身份提供方”页面选择您的身份提供方。
在项目设置侧边栏中,点击添加网域,然后添加您的自定义网域。
点击保存。
在应用配置中,将回调网址更新为自定义网域,而不是默认网域。例如,将
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]");