非同期関数を使用した認証フローのカスタマイズ
このドキュメントでは、非同期の Cloud Run functionsを使用して 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 リファレンスをご覧ください。
次のステップ
- ブロッキング関数を使用して認証を拡張する。
- 詳しくは、Cloud Run functions をご覧ください。