非同期関数を使用した認証フローのカスタマイズ

このドキュメントでは、非同期の Cloud Run 関数を使用して Identity Platform 認証を拡張する方法について説明します。

非同期関数は、ユーザーの作成と削除に応じて、非ブロッキング タスクをトリガーできます。これは、長時間実行オペレーションを開始する場合や、ウェルカム メールの送信などの補助タスクを行う場合に便利です。

認証オペレーションの結果を直接変更するには、ブロッキング関数を使用した認証の拡張をご覧ください。 非同期関数が受け取るユーザー オブジェクトには、ブロッキング関数からの更新は含まれません。

始める前に

Identity Platform でアプリを作成します。その方法については、クイックスタートをご覧ください。

非同期関数の作成

非同期関数を作成してデプロイするには、はじめに: 最初の関数の記述、テスト、デプロイの手順に従います。

ユーザー作成への対応

onCreate イベントは、ユーザー アカウントが作成されるたびにトリガーされます。これには、Admin SDK で作成された匿名のセッションとアカウントが含まれます。この関数は、ユーザーがカスタム トークンを使用して初めてログインするときにはトリガーされません。

次の例では、onCreate のハンドラを登録する方法を示します。

Node.js

exports.myFunction = functions.auth.user().onCreate((user) => {
  // TODO.
});

ユーザー削除への対応

onDelete イベントは、ユーザー アカウントが削除されるたびにトリガーされます。次の例では、onDelete のハンドラを登録する方法を示します。

Node.js

exports.myFunction = functions.auth.user().onDelete((user) => {
  // TODO.
});

ユーザー情報の取得

onCreate イベントと onDelete イベントは、作成または削除されたユーザーに関する情報を含む User オブジェクトと EventContext オブジェクトを提供します。次に例を示します。

Node.js

exports.myFunction = functions.auth.user().onCreate((user, context) => {
  const email = user.email; // The email of the user.
  const displayName = user.displayName; // The display name of the user.
});

使用可能なフィールドのリストについては、UserRecord API リファレンスEventContext API リファレンスをご覧ください。

次のステップ