Saltar al contenido principal
El disparador de Machine to Machine se ejecuta cuando se emite un mediante el flujo de credenciales de cliente.
Diagrama que muestra el flujo Machine to Machine de Actions y cuándo se ejecutan los disparadores dentro de él.
Las Actions de este flujo son bloqueantes (sincrónicas), lo que significa que se ejecutan como parte del proceso del disparador y evitan que el resto del flujo de Auth0 se ejecute hasta que la Action se complete.

Disparadores

M2M / Credenciales de cliente

El disparador credentials-exchange es una función que se ejecuta antes de devolver el token de acceso.

Referencias

  • Objeto de evento: Proporciona información contextual sobre la solicitud de intercambio de credenciales de cliente.
  • Objeto de API: Proporciona métodos para modificar el comportamiento del flujo.

Casos de uso habituales

Control de acceso

Se puede usar una Action de intercambio de credenciales para denegar un token de acceso en función de una lógica personalizada.
/**
 * @param {Event} event - Detalles sobre la solicitud de concesión de credenciales de cliente.
 * @param {CredentialsExchangeAPI} api - Interfaz cuyos métodos pueden usarse para cambiar el comportamiento de la concesión de credenciales de cliente.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  if (event.request.geoip.continentCode === "NA") {
    api.access.deny('invalid_request', "Access from North America is not allowed.");
  }
};

Añadir claims personalizados al token de acceso

Se puede usar una Action de intercambio de credenciales para añadir claims personalizados a un token de acceso.
/**
 * @param {Event} event - Detalles sobre la solicitud de concesión de credenciales de cliente.
 * @param {CredentialsExchangeAPI} api - Interfaz cuyos métodos pueden usarse para cambiar el comportamiento de la concesión de credenciales de cliente.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.accessToken.setCustomClaim("https://my-api.exampleco.com/request-ip", event.request.ip);  
};
Recomendamos encarecidamente usar un claim personalizado con espacio de nombres con formato de URI. Para obtener más información sobre los claims personalizados con y sin espacio de nombres, consulta Crear claims personalizados.