Because Auth0 does not support Post Registration Action, a workaround must be made

const axios = require("axios");
 
/**
* 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) => {
  if (event.authorization) {
    api.accessToken.setCustomClaim(`${event.secrets.AUDIENCE}/claims/username`, event.user.email);
  }
 
  // Only register on first login
  if (event.stats.logins_count > 1) {
    return
  }
 
  async function getAccessToken() {
    const tokenUrl = `${event.secrets.DOMAIN}/oauth/token`;
    const payload = {
      client_id: event.secrets.CLIENT_ID,
      client_secret: event.secrets.CLIENT_SECRET,
      audience: event.secrets.AUDIENCE,
      grant_type: 'client_credentials'
    };
 
    try {
      const response = await axios.post(tokenUrl, payload);
      return response.data.access_token;
    } catch (error) {
      console.log('Error getting access token:', error);
      throw error;
    }
  }
 
  return await axios.post(`${event.secrets.API_HOST_URL}/api/users`, {
    firstName: event.user?.given_name ?? "",
    lastName: event.user?.family_name ?? "",
    username: event.user?.email ?? user_name
  },{
    headers: {
      'Content-Type': 'application/json',
      [AUTH_HEADER]: event.secrets.AUTH0_API_SECRET_KEY,
      'Authorization': `Bearer ${await getAccessToken()}`
    },
  })
  .then(e => {
    console.log(e.data)
  }).catch(function (error) {
    if (error.response) {
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    }
  });
};