在登入時顯示自訂網域

本文將說明如何自訂 Identity Platform 驗證處理常式,讓使用者在登入時看到您的網域。

瞭解預設驗證處理常式

為專案啟用 Identity Platform 後,系統會自動建立由 Firebase 託管服務提供支援的專屬子網域。網域的格式為 https://[PROJECT-ID].firebaseapp.com。根據預設,Identity Platform 會使用這個網域處理所有 OAuth、OIDC 和 SAML 登入重新導向。

使用預設網域有幾項優點:

  • 設定更簡單

  • 使用相同聯合供應器的多個網域

  • 在不同服務和網域之間共用單一回呼網址

  • 適用於每個應用程式只支援一個回呼網址的供應商

預設處理程序的缺點是,使用者在登入時會短暫看到 https://[PROJECT-ID].firebaseapp.com 網址。

自訂驗證處理常式

如要覆寫預設處理常式並提供自己的處理常式,請按照下列步驟操作:

  1. 將專案連結至自訂網域。您必須使用 Firebase 控制台完成這些步驟,不支援使用 Google Cloud CLI 或 Google Cloud 控制台。

  2. 前往 Google Cloud 控制台的「Identity Providers」頁面,然後選取 SAML 供應商。前往「Identity Providers」(識別資訊提供者) 頁面

  3. 將自訂網域新增至「已授權的網域」清單。

  4. 請透過您的身分識別資訊提供者更新回呼網址,以便使用自訂網域,而非預設網域。例如,將 https://myproject.firebaseapp.com/__/auth/handler 變更為 https://auth.mycustomdomain.com/__/auth/handler

  5. 按一下 [儲存]

更新用戶端 SDK 設定

網頁

通常,您可以從Google Cloud 主控台複製用戶端 SDK 的初始化程式碼。如果您自訂驗證處理常式,就必須將 authDomain 欄位更新為自訂網域:

網頁版 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);

網頁版 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]");