Saltar al contenido principal
La fecha de fin de vida (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.Recomendamos encarecidamente que uses Actions para extender Auth0. Con Actions, tienes acceso a información de tipos avanzada, documentación integrada y paquetes públicos de npm, y puedes conectar integraciones externas que mejoran tu experiencia general de extensibilidad. Para obtener más información sobre lo que ofrece Actions, consulta Understand How Auth0 Actions Work.Para ayudarte con la migración, ofrecemos guías que te ayudarán a migrar de Rules a Actions y migrar de Hooks a Actions. También contamos con una página dedicada, Move to Actions, que destaca comparaciones de funcionalidades, una demostración de Actions y otros recursos para acompañarte en tu proceso de migración.Para obtener más información sobre la desaprobación de Rules y Hooks, lee nuestra entrada del blog: Preparing for Rules and Hooks End of Life.
Como tenemos previsto eliminar las funciones de Rules y Hooks en 2026, debes crear nuevos Rules o Hooks solo en tu entorno de desarrollo y únicamente para probar la migración a Actions.Para aprender a migrar tus Rules a Actions, consulta Migrate from Rules to Actions. Para aprender a migrar tus Hooks a Actions, consulta Migrate from Hooks to Actions.
Puedes cambiar alcances y agregar claims personalizados en los tokens emitidos mediante el flujo de credenciales del cliente agregando Hooks. Hooks te permiten personalizar el comportamiento de Auth0 con código de Node.js. Son funciones seguras y autocontenidas asociadas a puntos de extensibilidad específicos de la plataforma Auth0 (como el flujo de credenciales del cliente). Auth0 invoca los Hooks en tiempo de ejecución para ejecutar tu lógica personalizada. Puedes administrar Hooks mediante el o la .
Aunque puedes crear varios hooks para un punto de extensibilidad determinado, cada punto de extensibilidad solo puede tener un hook habilitado a la vez. Cualquier hook adicional que crees para ese punto de extensibilidad se deshabilitará automáticamente, por lo que debes habilitarlo explícitamente. El hook habilitado se ejecutará para todas las aplicaciones y API.

Requisitos previos

Antes de comenzar este tutorial, debe:

Pasos

  1. Crear Hook: Crea un Hook para personalizar tu token.
  2. Probar Hook: Prueba tu nuevo Hook ejecutando un flujo de credenciales del cliente y decodificando el token de acceso.

Crear un Hook

En este ejemplo, harás lo siguiente:
  • agregar un claim arbitrario (https://foo.com/claim) al Token de acceso
  • agregar un permiso adicional a la API que configuraste
Crea un Hook para personalizar el token. Cuando se te pida elegir un punto de extensibilidad, selecciona Client Credentials Exchange y agrega el siguiente código en el editor:
module.exports = function(client, scope, audience, context, cb) {
  var access_token = {};
  access_token['https://foo.com/claim'] = 'bar';
  access_token.scope = scope;
  access_token.scope.push('extra');
  cb(null, access_token);
};
Auth0 devuelve la información del perfil en un formato estructurado de claims, tal como se define en la especificación de OpenID Connect (OIDC). Esto significa que los claims personalizados agregados a los ID Tokens o a los tokens de acceso deben ajustarse a las directrices y restricciones para evitar posibles colisiones.

Prueba tu Hook

Para probar el hook que acabas de crear, debes ejecutar un intercambio de credenciales de cliente, obtener el , decodificarlo y revisar su contenido.

Obtener un token

Para obtener un token, realice una solicitud POST al endpoint del flujo de credenciales del cliente. Asegúrese de reemplazar los marcadores de posición CLIENT_ID, CLIENT_SECRET y API_IDENTIFIER por el de su aplicación, el de su aplicación y el Identificador de su API, respectivamente. Puede encontrar el ID de cliente y el Secreto del cliente en la configuración de su Aplicación y el Identificador de la API en la configuración de su API. Una respuesta exitosa incluirá:
  • un access_token,
  • su tiempo de expiración en segundos (expires_in),
  • el tipo de token establecido en Bearer (token_type), y
  • un permiso extra (scope) (que agregó tu Hook)
HTTP/1.1 200 OK
Content-Type: application/json
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik5ESTFNa05DTVRGQlJrVTRORVF6UXpFMk1qZEVNVVEzT1VORk5ESTVSVU5GUXpnM1FrRTFNdyJ9.eyJpc3MiOiJodHRwczovL2RlbW8tYWNjb3VudC5hdXRoMC3jb20vIiwic3ViIjoic0FRSlFpQmYxREw0c2lqSVZCb2pFRUZvcmRoa0o4WUNAY2xpZW50cyIsImF1ZCI6ImRlbW8tYWNjb3VudC5hcGkiLCJleHAiOjE0ODc3NjU8NjYsImlhdCI6MTQ4NzY3OTI2Niwic2NvcGUiOiJyZWFkOmRhdGEgZXh0cmEiLCJodHRwczovL2Zvby5jb20vY2xhaW0iOiKoPXIifQ.da-48mHY_7esfLZpvHWWL8sIH1j_2mUYAB49c-B472lCdsNFvpaLoq6OKQyhnqk9_aW_Xhfkusos3FECTrLFvf-qwQK70QtwbkbVye_IuPSTAYdQ2T-XTzGDm9Nmmy5Iwl9rNYLxVs2OoCdfpVMyda0OaI0AfHBgEdKWluTP67OOnV_dF3KpuwtK3dPKWTCo2j9VCa7X1I4h0CNuM79DHhY2wO7sL8WBej7BSNA3N2TUsp_YTWWfrvsr_vVhJf-32G7w_12ms_PNFUwj2C30ZZIPWc-uEkDztyMLdI-lu9q9TLrLdr0dOhfrtfkdeJx4pUSiHdJHf42kg7UAVK6JcA",
  "expires_in": 86400,
  "scope": "extra",
  "token_type": "Bearer"
}

Decodificar el token

La forma más sencilla de decodificar el token de acceso y revisar su contenido es usar el depurador de JWT.io. Copia tu token de acceso y pégalo en el editor. El se decodifica automáticamente y se muestra su contenido. Ten en cuenta que tu Hook ha establecido los dos últimos elementos de la Carga útil:
  • "scope": "extra"
  • "https://foo.com/claim": "bar"

Más información