Customizing the authentication flow using asynchronous functions (original) (raw)

This document shows you how to extend Identity Platform authentication using asynchronous Cloud Run functions.

Asynchronous functions let you trigger non-blocking tasks in response to user creation and deletion. They are useful for starting long-running operations or performing auxiliary tasks, like sending a welcome email.

To directly modify the result of an authentication operation, seeExtending authentication with blocking functions. The user object that an asynchronous function receives does not contain updates from the blocking function.

Before you begin

Create an app with Identity Platform. See theQuickstart to learn how.

Creating an asynchronous function

To create and deploy an asynchronous function, follow the steps inGet started: write, test, and deploy your first functions.

Responding to user creation

The onCreate event triggers whenever a user account is created. This includes anonymous sessions and accounts created with the Admin SDK. The function does not trigger when a user signs in for the first time using a custom token.

The following example shows how to register a handler for onCreate:

Node.js

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

Responding to user deletion

The onDelete event triggers whenever a user account is deleted. The following example shows how to register a handler for onDelete:

Node.js

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

Getting user information

The onCreate and onDelete events provide User and EventContext objects that contain information about the created or deleted user. For example:

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.
});

See theUserRecord API referenceand theEventContext API referencefor a list of available fields.

What's next