ログイン時にカスタム ドメインを表示する

このドキュメントでは、ユーザーがログイン時にドメインを確認するように、Identity Platform の認証ハンドラをカスタマイズする方法について説明します。

デフォルトの認証ハンドラについて

プロジェクトで Identity Platform を有効にすると、Firebase Hosting で動作する固有のサブドメインが自動的に作成されます。そのドメインの形式は https://[PROJECT-ID].firebaseapp.com です。デフォルトでは、Identity Platform はこのドメインを使用して、すべての OAuth、OIDC、SAML ログインのリダイレクトを処理します。

デフォルト ドメインの使用には、次のような利点があります。

  • 同じ連携プロバイダでの複数のドメインの使用

  • 1 つのコールバック URL を異なるのサービスやドメイン間で共有

  • アプリごとに 1 つのコールバック URL のみをサポートするプロバイダとの連携

デフォルトのハンドラの欠点は、ログイン時に https://[PROJECT-ID].firebaseapp.com の URL を一時的にユーザーが確認できることです。

認証ハンドラをカスタマイズする

デフォルトのハンドラをカスタム ハンドラでオーバーライドする手順は次のとおりです。

  1. Firebase コンソールで、プロジェクトをカスタム ドメインに接続します。

  2. Google Cloud コンソールで、[Identity Platform> ID プロバイダ] ページに移動します。
    [ID プロバイダ] に移動

  3. ID プロバイダを選択します。

  4. [プロジェクト設定] サイドペインで、[ドメインを追加] をクリックして、カスタム ドメインを追加します。

  5. [保存] をクリックします。

  6. アプリの構成で、デフォルト ドメインの代わりにカスタム ドメインを使用してコールバック URL を更新します。たとえば、https://myproject.firebaseapp.com/__/auth/handlerhttps://auth.mycustomdomain.com/__/auth/handler に変更します。

クライアント SDK 構成を更新する

ウェブ

クライアント SDK の初期化コードは、Google Cloud コンソールからコピーできます。認証ハンドラをカスタマイズする場合は、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]");