Skip to main content
La fecha de fin de vida útil (EOL) de Rules y Hooks será el 18 de noviembre de 2026, y ya no están disponibles para los nuevos inquilinos creados a partir del 16 de octubre de 2023. Los inquilinos existentes con Hooks activos conservarán el acceso al producto Hooks hasta su fin de vida útil.Le recomendamos encarecidamente que use Actions para extender Auth0. Con Actions, tiene acceso a información de tipos enriquecida, documentación integrada y paquetes públicos de npm, y puede conectar integraciones externas que mejoran su experiencia general de extensibilidad. Para obtener más información sobre lo que ofrece Actions, lea Understand How Auth0 Actions Work.Para ayudarle con la migración, ofrecemos guías que le ayudarán a migrar de Rules a Actions y migrar de Hooks a Actions. También contamos con una página específica de Move to Actions que destaca comparaciones de funcionalidades, una demostración de Actions y otros recursos para ayudarle en su proceso de migración.Para obtener más información sobre la deprecación de Rules y Hooks, lea nuestra entrada de blog: Preparing for Rules and Hooks End of Life.
En el punto de extensibilidad Client Credentials Exchange, Hooks le permiten ejecutar acciones personalizadas cuando se emite un a través del endpoint POST /oauth/token de la API de autenticación mediante el flujo de credenciales de cliente. Por ejemplo, puede impedir que se emita el token, agregar claims personalizados al token de acceso o modificar sus alcances. Para obtener más información, lea Client Credentials Flow. Los Hooks en este punto de extensibilidad son bloqueantes (sincrónicos), lo que significa que se ejecutan como parte del proceso del activador e impiden que el resto del flujo de Auth0 continúe hasta que el Hook se complete.
El triggerId del punto de extensibilidad Client Credentials Exchange es credentials-exchange. Para aprender a crear Hooks para este punto de extensibilidad, lea Create Hooks.
Para conocer otros puntos de extensibilidad, lea Puntos de extensibilidad.

Código de ejemplo inicial y parámetros

Al crear un Hook que se ejecuta en el punto de extensibilidad Client Credentials Exchange, puede resultarle útil el siguiente código de ejemplo inicial. Los parámetros que se pueden pasar a la función Hook y usar en ella se enumeran al principio del ejemplo de código.
Tenga en cuenta lo siguiente:
  • La función callback (cb) al final del código de ejemplo indica que la ejecución ha finalizado y debe incluirse.
  • La línea access_token.scope = scope garantiza que todos los alcances concedidos estén presentes en el token de acceso. Si la elimina, se restablecerán todos los alcances y el token incluirá solo los alcances que agregue con el script.

Respuesta predeterminada

Cuando ejecutas un Hook en el punto de extensibilidad Client Credentials Exchange, el objeto de respuesta predeterminado es:

Respuesta del código base

Una vez que hayas personalizado el código base con tus alcances y claims adicionales, puedes probar el Hook con el ejecutor integrado en el Hook Editor. El ejecutor simula una llamada al Hook con el mismo cuerpo y la misma respuesta que obtendrías con un Client Credentials Exchange.
Ejecutar el código con el ejecutor requiere guardarlo, lo que significa que el código original se sobrescribirá.
Cuando ejecutas un Hook basado en el código base, el objeto de respuesta es:

Script de ejemplo: Añadir un scope adicional al token de acceso

En este ejemplo, usamos un Hook para añadir un scope adicional a los ya existentes en el token de acceso.
Para obtener más información, consulta Scopes.

Respuesta

Al ejecutar este Hook, el objeto de respuesta es:

Script de ejemplo: Agregar un claim al token de acceso

En este ejemplo, agregamos un claim personalizado con espacio de nombres y su valor al token de acceso. Para obtener más información, consulta Create Namespaced Custom Claims. Puedes agregar lo siguiente como claims al token emitido:
  • La propiedad scope del objeto de respuesta
  • Cualquier propiedad con nombres de propiedad con espacio de nombres
El punto de extensibilidad ignora todas las demás propiedades del objeto de respuesta.
Para acceder a un Hook Secret configurado desde un hook, usa context.webtask.secrets.SECRET_NAME.

Respuesta

Al ejecutar este Hook, el objeto de respuesta es:

Script de ejemplo: Generar un error o denegar un token de acceso

En este ejemplo, usamos objetos Error personalizados para generar respuestas de error de OAuth2. (Para obtener más información, consulte RFC de OAuth2: sección 5.2 en el IETF Datatracker.) Si se devuelve un error simple de JavaScript en la función de devolución de llamada, como:
Luego, cuando solicites un grant client_credentials al endpoint /oauth/token, Auth0 responderá con:
Sin embargo, si desea un mayor control sobre la respuesta de error de OAuth2, puede usar en su lugar tres objetos Error personalizados.

InvalidScopeError

Luego, cuando solicitas una concesión client_credentials al endpoint /oauth/token, Auth0 responde con:

InvalidRequestError

Luego, cuando solicite el grant client_credentials en el endpoint /oauth/token, Auth0 responderá con:

ServerError

Entonces, cuando solicites una concesión de tipo client_credentials al endpoint /oauth/token, Auth0 responderá con:
Actualmente, el comportamiento de la clase integrada Error de JavaScript y de ServerError es idéntico, pero la clase ServerError le permite especificar explícitamente el error de OAuth2 que se devolverá.

Más información