在登录时显示自定义域名

本文档介绍如何自定义 Identity Platform 身份验证处理程序,以便用户登录时看到您的网域。

了解默认身份验证处理程序

在您为项目启用 Identity Platform 时,系统会自动创建由 Firebase Hosting 提供支持的唯一子网域。网域的格式为 https://[PROJECT-ID].firebaseapp.com。默认情况下,Identity Platform 会使用此网域来处理所有 OAuth、OIDC 和 SAML 登录重定向。

使用默认网域具有多项优势:

  • 将多个域名用于相同的联合提供商

  • 在不同的服务和网域之间共享一个回调网址

  • 使用每个应用仅支持一个回调网址的提供商

默认处理程序的缺点是,用户在登录时会短暂看到 https://[PROJECT-ID].firebaseapp.com 网址。

自定义身份验证处理程序

如需使用自定义处理程序替换默认处理程序,请执行以下操作:

  1. 从 Firebase 控制台中,将您的项目关联到自定义网域

  2. 在 Google Cloud 控制台中,前往 Identity Platform > 身份提供方 页面。
    前往身份提供方

  3. 选择您的身份提供方。

  4. 项目设置 侧边栏中,点击添加网域,然后添加您的 自定义网域。

  5. 点击保存

  6. 在应用配置中,使用自定义网域(而不是默认网域)更新回调网址。例如,将 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]");