Skip to content

auth0/auth0-actions

Actions for Auth0

License NPM Downloads

🚀 Getting Started • 💬 Feedback

Official Auth0 Actions TypeScript definitions, which will help you code and test your project’s Actions on external editors and IDEs.

🚀 Getting Started

Prerequisites:

Installation:

Install the package using npm:

npm install --save-dev @auth0/actions

Or using yarn:

yarn add --dev @auth0/actions

Or using pnpm:

pnpm add --save-dev @auth0/actions

Usage:

Import the TypeScript definitions into your Auth0 Actions using one of the following approaches:

JSDoc @import:

Use this approach when you want to enable IntelliSense without changing your existing JavaScript code structure:

/** @import {Event, PostLoginAPI} from "@auth0/actions/post-login/v3" */

/**
* Handler that will be called during the execution of a PostLogin flow.
*
* @param {Event} event - Details about the user and the context in which they are logging in.
* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
*/
exports.onExecutePostLogin = async (event, api) => {
  const user = event.user;

  // Your Action logic here
  if (user.email?.endsWith('@example.com')) {
    api.user.setAppMetadata('department', 'internal');
  }
}

JSDoc @param:

Use this approach for type safety in JavaScript files using import statements in JSDoc comments:

/**
* Handler that will be called during the execution of a PostLogin flow.
*
* @param {import('@auth0/actions/post-login/v3').Event} event - Details about the user and the context in which they are logging in.
* @param {import('@auth0/actions/post-login/v3').PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
*/
exports.onExecutePostLogin = async (event, api) => {
  const user = event.user;

  // Your Action logic here
  if (user.email?.endsWith('@example.com')) {
    api.user.setAppMetadata('department', 'internal');
  }
}

TypeScript import:

Use this approach when developing with TypeScript for full type checking and modern syntax:

import type { Event, PostLoginAPI } from '@auth0/actions/post-login/v3';

/**
* Handler that will be called during the execution of a PostLogin flow.
*
* @param {Event} event - Details about the user and the context in which they are logging in.
* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
*/
exports.onExecutePostLogin = async (event: Event, api: PostLoginAPI) => {
  const user = event.user;

  // Your Action logic here
  if (user.email?.endsWith('@example.com')) {
    api.user.setAppMetadata('department', 'internal');
  }
};

⚠️ Important: When using TypeScript, you must compile your code to JavaScript before deploying to Auth0. The Auth0 Actions runtime only executes JavaScript. Use the TypeScript compiler (tsc) to transpile your .ts files to .js files, before it can be deployed. You must also include JSDoc comments to enable Intellisense in the Dashboard.

💬 Feedback and Contributing

This repository contains automatically generated TypeScript types and utilities for Auth0 Actions development. The types in this package are generated from Auth0's internal systems and are published to help developers build Actions. This repository does not accept external contributions. The contents of this package are automatically generated and maintained by Auth0's internal systems. For help using this package, reporting issues, or providing feedback:

📄 License

Copyright 2026 Okta, Inc.

This project is licensed under the Apache 2.0 license. See the LICENSE file for more info.

What is Auth0?

Auth0 Logo

Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?