Skip to main content
Auth0.js es una biblioteca de JavaScript del lado del cliente para Auth0. Admite tanto el inicio de sesión alojado como el inicio de sesión integrado. La documentación completa de la API de la biblioteca está aquí.
El inicio de sesión integrado para aplicaciones web utiliza autenticación entre orígenes, a menos que configures un dominio personalizado para tu tenant. La autenticación entre orígenes utiliza cookies de terceros para permitir transacciones de autenticación seguras entre distintos orígenes.

Ejemplo listo para usar

El directorio de ejemplo de la biblioteca auth0.js es una aplicación lista para usar que puede ayudarte a probar auth0.js de forma rápida y sencilla. Para ejecutarla, sigue estos pasos:
  1. Si no tienes node instalado, instálalo ahora
  2. Descarga las dependencias ejecutando npm install desde la raíz de este proyecto
  3. Por último, ejecuta npm start desde la raíz de este proyecto y luego abre en el navegador la aplicación que se está ejecutando en el servidor de Node, probablemente en http://localhost:3000/example.

Configuración e inicialización

Ahora, comencemos a integrar auth0.js en tu proyecto. Veremos los métodos de instalación, cómo inicializar auth0.js, registro, inicio de sesión, cierre de sesión y mucho más.

Configura tu aplicación de Auth0 para el inicio de sesión integrado

Al implementar el inicio de sesión integrado, la biblioteca usará solicitudes entre orígenes dentro de iframes ocultos para realizar la autenticación. Para garantizar que esto pueda hacerse de forma segura, Auth0 necesita conocer los dominios donde alojarás tus aplicaciones. Agrega el dominio al campo Allowed Web Origins. Puedes encontrar este campo en la sección de Application Settings de tu Dashboard.

Opciones de instalación

Tienes varias opciones para usar auth0.js en tu proyecto. Elige una de las siguientes según tus necesidades: Instálalo mediante npm o yarn:
npm install auth0-js

yarn add auth0-js
Después de instalar el módulo auth0-js, tendrás que incluirlo en el paquete junto con todas sus dependencias o importarlo con:
import auth0 from 'auth0-js';
Como alternativa, incluye el script desde nuestro CDN:
<script src="https://cdn.auth0.com/js/auth0/9.18/auth0.min.js"></script>

Inicialización

Inicializa una instancia nueva de la aplicación Auth0 de la siguiente manera:

Parámetros disponibles

Hay dos parámetros obligatorios que deben pasarse en el objeto options al instanciar webAuth, y varios más que son opcionales.
ParámetroObligatorioDescripción
domainobligatorio(String) El dominio de tu cuenta de Auth0 (p. ej., myaccount.auth0.com)
clientIDobligatorio(String) Tu ID de cliente de Auth0
redirectUriopcional*(String) El redirectUri predeterminado que se utilizará. De forma predeterminada, es una cadena vacía (ninguno). Si no proporcionas aquí un valor global de redirectUri, tendrás que proporcionar un valor de redirectUri para cada método que uses.
scopeopcional(String) El predeterminado que usa la aplicación. El uso de scopes puede permitirte devolver claims específicos para campos concretos de tu solicitud. Debes consultar nuestra documentación sobre scopes para obtener más detalles.
audienceopcional(String) La audiencia predeterminada que se utilizará para solicitar acceso a la API.
responseTypeopcional*(String) El responseType predeterminado que se utilizará. Puede ser cualquier lista separada por espacios de los valores code, token, id_token. El valor predeterminado es 'token', a menos que se proporcione un redirectUri, en cuyo caso será 'code'. Si no proporcionas un valor global de responseType, tendrás que proporcionar un valor de responseType para cada método que uses.
responseModeopcional(String) Esta opción se omite de forma predeterminada. Puede establecerse en 'form_post' para enviar el token o código al 'redirectUri' mediante POST. Los valores admitidos son query, fragment y form_post.
leewayopcional(Integer) Un valor en segundos; margen permitido para compensar la desincronización del reloj con respecto a los tiempos de expiración del ID Token.
_disableDeprecationWarningsopcional(Boolean) Desactiva las advertencias de obsolescencia; el valor predeterminado es false.
Debido a problemas de desincronización del reloj, es posible que ocasionalmente te encuentres con el error The token was issued in the future. El parámetro leeway puede usarse para permitir unos segundos de margen en los tiempos de expiración del ID Token y evitar que esto ocurra.
Scope
El valor predeterminado de scope en auth0.js v9 es openid profile email.

Ejecutar Auth0.js de forma local

Si no especificas al menos el scope indicado arriba al inicializar auth0.js y ejecutas tu sitio web desde http://localhost o http://127.0.0.1, al llamar al método getSSOData() se mostrará el siguiente error en la consola del navegador:Consent required. When using getSSOData, the user has to be authenticated with the following scope: openid profile emailEsto no ocurrirá cuando ejecutes tu aplicación en producción o si especificas el scope openid profile email. Puedes obtener más información en el documento Consentimiento del usuario y aplicaciones de terceros.

Inicio de sesión

Puedes elegir un método de inicio de sesión en función del tipo de autenticación que necesites en tu aplicación.

webAuth.authorize()

El método authorize() puede usarse para iniciar sesión mediante o conexiones sociales, como se muestra en los ejemplos a continuación. Este método invoca el endpoint /authorize de la Authentication API y puede recibir distintos parámetros a través del objeto options.
ParámetroObligatorioDescripción
audienceopcional(String) La audiencia predeterminada que se usará para solicitar acceso a la API.
connectionopcional(String) Especifica la conexión que se usará, en lugar de mostrar todas las conexiones disponibles para la aplicación.
scopeopcional(String) Los scopes para los que deseas solicitar autorización. Deben estar separados por espacios. Puedes solicitar cualquiera de los scopes estándar de OIDC relacionados con el usuario, como profile y email, claims personalizados que deben ajustarse a un formato con espacio de nombres, o cualquier scope compatible con la API de destino (por ejemplo, read:contacts). Incluye offline_access para obtener un .
responseTypeopcional(String) Puede ser cualquier lista de valores separada por espacios entre code, token, id_token. Su valor predeterminado es 'token', a menos que se proporcione un redirectUri, en cuyo caso será 'code'.
clientIDopcional(String) Tu ID de cliente de Auth0.
redirectUriopcional(String) La URL a la que Auth0 redirigirá el navegador una vez que se haya concedido la autorización al usuario.
stateopcional(String) Un valor arbitrario que debe mantenerse entre redirecciones. Es útil para mitigar ataques CSRF y para cualquier información contextual (por ejemplo, una URL de retorno) que puedas necesitar una vez finalizado el proceso de autenticación. Para obtener más información, consulta State Parameter. auth0.js, cuando se usa en aplicaciones de una sola página, gestiona automáticamente la generación y validación de state si no se especifica.
promptopcional(String) Un valor de login forzará que se muestre la página de inicio de sesión independientemente de la sesión actual. Un valor de none intentará omitir las pantallas de inicio de sesión si ya existe una sesión (consulta la documentación de autenticación silenciosa para más detalles).
Para el inicio de sesión alojado, se debe llamar al método /authorize(). webAuth.authorize({//Cualquier opción adicional puede ir aquí}); Para los inicios de sesión sociales, será necesario especificar el parámetro connection: webAuth.authorize({connection: 'twitter'});

webAuth.popup.authorize()

Para la autenticación mediante ventana emergente se puede usar el método popup.authorize. La autenticación mediante ventana emergente no puede utilizarse en páginas de inicio de sesión alojadas. Normalmente, este tipo de autenticación se usa en aplicaciones de una sola página para no perder el estado actual al hacer una redirección de página completa. Autorización predeterminada mediante ventana emergente (Universal Login):
webAuth.popup.authorize({
  responseType: 'token'
  redirectUri: 'https://{yourApp}/popup_response_handler.html'
  //Aquí pueden ir opciones adicionales
}, function(err, authResult) {
  //hacer algo
});
Y para iniciar sesión con redes sociales mediante una ventana emergente usando authorize:
webAuth.popup.authorize({
  responseType: 'token'
  redirectUri: 'https://{yourApp}/popup_response_handler.html',
  connection: 'twitter'
}, function(err, authResult) {
  //hacer algo
});

Gestión de los resultados de autenticación con ventana emergente

Al usar la autenticación con ventana emergente, tendrás que proporcionar un redirectUri en el que la página de destino comunique los resultados de la autorización al callback mediante el método webAuth.popup.callback. Una implementación sencilla sería algo así:
<!-- popup_response_handler.html -->
<html>
  <body>
    <script src="https://cdn.auth0.com/js/auth0/9.18/auth0.min.js"></script>
    <script type="text/javascript">
      var webAuth = new auth0.WebAuth({
        domain:       '{yourDomain}',
        clientID:     '{yourClientId}'
      });
      webAuth.popup.callback();
    </script>
  </body>
</html>
Un manejador ideal contendría solo esta funcionalidad mínima (es decir, que evite recargar toda la aplicación solo para procesar la respuesta). Tendrás que añadir el redirectUri a la lista de Allowed Callback URLs en la página de configuración de la aplicación del Dashboard.

webAuth.login()

El inicio de sesión integrado para aplicaciones web usa la autenticación entre orígenes, a menos que configure un dominio personalizado para su tenant. La autenticación entre orígenes utiliza cookies de terceros para permitir transacciones de autenticación seguras entre distintos orígenes.
El método login puede utilizarse para el inicio de sesión integrado mediante autenticación entre orígenes en conexiones de base de datos, usando /co/authenticate.
ParámetroObligatorioDescripción
usernameopcional(String) El nombre de usuario que se usará para la autenticación. Debe proporcionarse username o email.
emailopcional(String) El correo electrónico que se usará para la autenticación. Debe proporcionarse username o email.
passwordobligatorio(String) La contraseña que se usará para la autenticación.
realmobligatorio(String) El nombre de la conexión de base de datos con la que se autenticará.
webAuth.login({
  realm: 'tests',
  username: 'testuser',
  password: 'testpass',
});

webAuth.crossOriginVerification()

El método crossOriginVerification() puede utilizarse para facilitar la autenticación entre orígenes a los clientes que tienen deshabilitadas las cookies de terceros en sus navegadores. Puedes consultar más información sobre su uso en el documento de autenticación entre orígenes.

buildAuthorizeUrl(options)

El método buildAuthorizeUrl puede usarse para construir la URL /authorize a fin de iniciar una nueva transacción. Usa este método si quieres implementar autenticación basada en el navegador (pasiva). El parámetro state es un valor opaco que Auth0 te devolverá. Este método ayuda a prevenir ataques CSRF y debe especificarse si rediriges a la URL tú mismo en lugar de llamar a webAuth.authorize(). Para obtener más información, consulta State Parameter.

Inicio de sesión único con autenticación integrada

Las aplicaciones con inicio de sesión integrado deben cumplir dos criterios para poder tener (SSO).
  1. Ambas aplicaciones que intentan usar SSO deben ser aplicaciones propias. El SSO con aplicaciones de terceros no funcionará.
  2. Deben usar dominios personalizados, y tanto las aplicaciones que vayan a tener SSO como el tenant de Auth0 deben estar en el mismo dominio. Tradicionalmente, los dominios de Auth0 tienen el formato foo.auth0.com, pero los dominios personalizados te permiten usar el mismo dominio para cada una de las aplicaciones en cuestión, así como para tu tenant de Auth0, lo que evita el riesgo de ataques CSRF.
Nuestra recomendación es usar Universal Login en lugar de configurar SSO en escenarios de inicio de sesión integrado. Universal Login es la forma más fiable y estable de realizar SSO, y es la única manera de hacerlo si debes usar varios dominios para tus aplicaciones o aplicaciones de terceros.

Inicio de sesión sin contraseña

La autenticación permite a los usuarios iniciar sesión recibiendo un código de un solo uso por correo electrónico o mensaje de texto. El proceso requiere que inicies el flujo sin contraseña, generando y enviando un código al usuario (o un código dentro de un enlace) y, a continuación, validando sus credenciales mediante el método de verificación. Esto puede presentarse en forma de una pantalla de inicio de sesión que solicite su correo electrónico o número de teléfono y el código que acabas de enviarle. También puede implementarse como un enlace sin contraseña en lugar de un código enviado al usuario. Bastaría con que hicieran clic en el enlace de su correo electrónico o mensaje de texto para que este llame a tu endpoint y verifique estos datos automáticamente usando el mismo método de verificación (solo que sin que el usuario tenga que introducir manualmente un código). Para usar la autenticación sin contraseña, deberás inicializar auth0.js con un redirectUri y establecer responseType: 'token'.

Iniciar la autenticación sin contraseña

El primer paso para la autenticación sin contraseña con auth0.js es el método passwordlessStart, que admite varios parámetros dentro de su objeto options:
ParameterRequiredDescription
connectionobligatorio(String) Especifica cómo enviar el código o el enlace al usuario. El valor debe ser email o sms.
sendobligatorio(String) El valor debe ser code o link. Si es null, se enviará un enlace.
phoneNumberopcional(String) El número de teléfono del usuario al que se enviará un código o enlace por SMS.
emailopcional(String) El correo electrónico del usuario al que se enviará un código o enlace por correo electrónico.
Ten en cuenta que, para iniciar el proceso de autenticación sin contraseña, debes enviar exactamente uno de los parámetros opcionales phoneNumber y email.
webAuth.passwordlessStart({
    connection: 'email',
    send: 'code',
    email: 'foo@bar.com'
  }, function (err,res) {
    // manejar errores o continuar
  }
);

Completar la autenticación sin contraseña

Si envías un código, tendrás que pedirle al usuario que lo introduzca. Procesarás el código y autenticarás al usuario con el método passwordlessLogin, que tiene varios parámetros que pueden enviarse en su objeto options:
ParámetroObligatorioDescripción
connectionobligatorio(String) Especifica cómo se envía el código/enlace al usuario. El valor debe ser email o sms, y debe coincidir con el valor pasado a passwordlessStart.
verificationCodeobligatorio(String) El código enviado al usuario, ya sea como código o integrado en un enlace.
phoneNumberopcional(String) El número de teléfono del usuario al que se envió el código o enlace por SMS.
emailopcional(String) El correo electrónico del usuario al que se envió el código o enlace por correo electrónico.
Al igual que con passwordlessStart, debe enviarse exactamente uno de los parámetros opcionales phoneNumber o email para verificar la transacción sin contraseña. Para usar passwordlessLogin, las opciones redirectUri y responseType deben especificarse al inicializar WebAuth por primera vez.
webAuth.passwordlessLogin({
    connection: 'email',
    email: 'foo@bar.com',
    verificationCode: '389945'
  }, function (err,res) {
    // gestionar errores o continuar
  }
);

Extrae el authResult y obtén información del usuario

Una vez completada la autenticación, puedes usar el método parseHash para analizar el fragmento hash de una URL cuando se redirige al usuario de vuelta a tu aplicación y extraer así el resultado de una respuesta de autenticación de Auth0. Puedes hacerlo en una página de callback que luego redirija a tu aplicación principal o directamente en la propia página, según convenga en cada caso. El método parseHash recibe un objeto options que contiene los siguientes parámetros:
ParámetroObligatorioDescripción
stateopcional(String) Un valor opaco que la aplicación añade a la solicitud inicial y que Auth0 incluye al redirigir de vuelta a la aplicación. auth0.js usa este valor para evitar ataques CSRF.
opcional(String) Se utiliza para verificar el ID Token
hashopcional(String) El hash de la URL (si no se proporciona, se usará window.location.hash de forma predeterminada)
El contenido del objeto authResult que devuelve parseHash depende de los parámetros de autenticación que se hayan utilizado. Puede incluir:
ElementoDescripción
accessTokenUn para la API especificada por audience
expiresInUna cadena que contiene el tiempo de expiración (en segundos) del accessToken
idTokenUn JWT de ID Token que contiene información del perfil del usuario
webAuth.parseHash({ hash: window.location.hash }, function(err, authResult) {
  if (err) {
    return console.log(err);
  }

  webAuth.client.userInfo(authResult.accessToken, function(err, user) {
    // Ahora tienes la información del usuario
  });
});
Como se muestra arriba, se puede llamar al método client.userInfo pasando el accessToken devuelto. Este hará una solicitud al endpoint /userinfo y devolverá el objeto user, que contiene la información del usuario, con un formato similar al del ejemplo siguiente.
{
    "sub": "auth0|123456789012345678901234",
    "nickname": "johnfoo",
    "name": "johnfoo@gmail.com",
    "picture": "https://gravatar.com/avatar/example.png",
    "updated_at": "2018-05-07T14:16:52.013Z",
    "email": "johnfoo@gmail.com",
    "email_verified": "false"
}
Ahora puede hacer otras cosas con esta información según las necesidades de su aplicación, como obtener toda la información del perfil del usuario con la , como se describe a continuación.

Uso de nonce

De forma predeterminada (y si responseType contiene id_token), auth0.js generará un nonce aleatorio cuando llames a webAuth.authorize, lo almacenará en el almacenamiento local y lo recuperará en webAuth.parseHash. El comportamiento predeterminado debería funcionar en la mayoría de los casos, pero en algunos escenarios puede ser necesario que el desarrollador controle el nonce. Si quieres usar un nonce generado por el desarrollador, debes proporcionarlo como una opción tanto en webAuth.authorize como en webAuth.parseHash. webAuth.authorize({<Tooltip tip="Nonce: Arbitrary number issued once in an authentication protocol to detect and prevent replay attacks." cta="View Glossary" href="/docs/glossary?term=nonce">nonce</Tooltip>: '1234', responseType: 'token id_token'}); webAuth.parseHash({nonce: '1234'}, callback); Si llamas a webAuth.checkSession en lugar de webAuth.authorize, solo tienes que especificar tu nonce personalizado como una opción en checkSession:
webAuth.checkSession({
  nonce: '1234',
}, function (err, authResult) {
    ...
});
El método webAuth.checkSession verificará automáticamente que la claim nonce del ’ devuelto sea la misma que la opción.

Códigos de error y descripciones

Cuando Auth0.js se usa para el inicio de sesión integrado, utiliza el endpoint /co/authenticate, que puede generar los siguientes errores:
Las descripciones de los errores están pensadas para que las personas puedan entenderlas. La descripción no debe ser analizada por ningún código y puede cambiar en cualquier momento.
StatusCodeDescription
400invalid_requestCuerpo de la solicitud no válido. Se requieren todos y únicamente client_id, credential_type, username, otp y realm.
401unauthorized_clientNo se permite el inicio de sesión entre orígenes.
400unsupported_credential_typeParámetro de tipo de credencial desconocido.
400invalid_requestRealm desconocido: non-existent-connection.
403access_deniedCorreo electrónico o contraseña incorrectos.
403access_deniedError de autenticación
403blocked_userUsuario bloqueado
401password_leakedEste intento de inicio de sesión se ha bloqueado porque la contraseña que estás usando ya se había visto comprometida en una filtración de datos (no en esta aplicación).
429too_many_attemptsTu cuenta se ha bloqueado tras varios intentos consecutivos de inicio de sesión. Te hemos enviado una notificación a través de tu método de contacto preferido con instrucciones para desbloquearla.
429too_many_attemptsHemos detectado un comportamiento sospechoso en el inicio de sesión y se bloquearán los siguientes intentos. Ponte en contacto con el administrador.
Además, también puedes recibir un error 403 genérico sin una propiedad error ni error_description. El cuerpo de la respuesta simplemente incluiría algo similar a lo siguiente: Origin https://test.app is not allowed.

Cerrar sesión

Para cerrar la sesión de un usuario, usa el método logout(). Este método acepta un objeto de opciones que puede incluir los siguientes parámetros. Si se incluye el parámetro clientID, la URL returnTo proporcionada debe figurar en las Allowed Logout URLs de la aplicación en el Dashboard de Auth0. Sin embargo, si no se incluye el parámetro clientID, la URL returnTo debe figurar en las Allowed Logout URLs configuradas a nivel de cuenta en el Dashboard de Auth0.
webAuth.logout({
  returnTo: 'some url here',
  clientID: 'some client ID here'
});

Registro

Para registrar un usuario, usa el método signup. Este método acepta un objeto de opciones que puede incluir los siguientes parámetros.
ParámetroObligatorioDescripción
emailobligatorio(String) Dirección de correo electrónico del usuario
passwordobligatorio(String) Contraseña que desea usar el usuario
usernameobligatorio*(String) Nombre de usuario que desea usar el usuario. *Obligatorio si usas una conexión de base de datos y has habilitado Requires Username
connectionobligatorio(String) Nombre de la conexión de base de datos de tu aplicación en la que se intentará crear la cuenta de usuario
user_metadataopcional(JSON object) Atributos adicionales para la información del usuario. Se almacenarán en user_metadata
Los registros deben realizarse en conexiones de base de datos. Aquí tienes un ejemplo del método signup y código de ejemplo para un formulario.
<h2>Signup Database Connection</h2>
<input class="signup-email" />
<input type="password" class="signup-password" />
<input type="button" class="signup-db" value="Signup!" />
<script type="text/javascript">
    $('.signup-db').click(function (e) {
        e.preventDefault();
        webAuth.signup({
            connection: 'Username-Password-Authentication',
            email: $('.signup-email').val(),
            password: $('.signup-password').val(),
            user_metadata: { plan: 'silver', team_id: 'a111' }
        }, function (err) {
            if (err) return alert('Something went wrong: ' + err.message);
            return alert('success signup without login!')
        });
    });
</script>

Uso de checkSession para obtener nuevos tokens

El método checkSession te permite obtener un nuevo token de Auth0 para un usuario que ya está autenticado con Auth0 en tu dominio. El método acepta cualquier parámetro válido de OAuth2 que normalmente se enviaría a authorize. Si los omites, usará los que se proporcionaron al inicializar Auth0. La llamada a checkSession puede usarse para obtener un nuevo token para la API que se especificó como la al inicializar webAuth:
webAuth.checkSession({}, function (err, authResult) {
  // err si el parseHash automático falla
  ...
});
Consulta Extraer el AuthResult y obtener la información del usuario para conocer el formato de authResult. O bien, se puede obtener el token para una API distinta de la usada al inicializar webAuth especificando un audience y un scope:
webAuth.checkSession(
  {
    audience: `https://mydomain/another-api/˜`,
    scope: 'read:messages'
  }, function (err, authResult) {
  // err si el parseHash automático falla
  ...
});
Ten en cuenta que checkSession() activa cualquier regla que hayas configurado, por lo que deberías revisar tus reglas en el Dashboard antes de usarla. La redirección real a /authorize se produce dentro de un iframe, por lo que no recargará tu aplicación ni te redirigirá fuera de ella. Sin embargo, el navegador debe tener habilitadas las cookies de terceros. De lo contrario, checkSession() no podrá acceder a la sesión actual del usuario (lo que hace imposible obtener un nuevo token sin mostrar nada al usuario). Lo mismo ocurrirá si los usuarios tienen la ITP de Safari habilitada. Recuerda añadir la URL desde la que se origina la solicitud de autorización a la lista de Allowed Web Origins de tu aplicación de Auth0 en el Dashboard, dentro de Settings de tu aplicación.
Si se trata de una conexión social y estás usando claves de desarrollo de Auth0, la llamada a checkSession siempre devolverá login_required.

Sondeo con checkSession()

En algunos escenarios con varias aplicaciones, en los que se desea Single Logout (cuando un usuario cierra sesión en una aplicación, también debe cerrarse en las demás), una aplicación puede configurarse para consultar periódicamente a Auth0 mediante checkSession() y comprobar si existe una sesión. Si la sesión no existe, puedes cerrar la sesión del usuario en la aplicación. El mismo método de sondeo puede utilizarse para implementar autenticación silenciosa en un escenario de inicio de sesión único (SSO). El intervalo de sondeo entre comprobaciones con checkSession() debe ser de al menos 15 minutos entre llamadas para evitar posibles problemas futuros con la limitación de tasa de esta llamada.

Solicitudes de restablecimiento de contraseña

Si quieres configurar la funcionalidad de restablecimiento de contraseña, usarás el método changePassword y pasarás un objeto options con un parámetro connection y otro email.
$('.change_password').click(function () {
    webAuth.changePassword({
      connection: 'db-conn',
      email:   'foo@bar.com'
    }, function (err, resp) {
      if(err){
        console.log(err.message);
      }else{
        console.log(resp);
      }
    });
  });
El usuario recibirá entonces un correo electrónico con un enlace para restablecer su contraseña.

Gestión de usuarios

La Management API ofrece funciones que te permiten vincular y desvincular cuentas de usuario independientes de distintos proveedores, así como actualizar los metadatos del usuario. Para obtener más información, consulta Vinculación de cuentas de usuario. Para empezar, primero debes obtener un que pueda utilizarse para llamar a la Management API. Puedes hacerlo especificando la audiencia https://{yourDomain}/api/v2/ al inicializar auth0.js; en ese caso, obtendrás el token de acceso como parte del flujo de autenticación. Si usas dominios personalizados, tendrás que crear una nueva instancia de webAuth con tu dominio de Auth0 en lugar del dominio personalizado para usarla en las llamadas a la Management API, ya que esta solo funciona con dominios de Auth0. También puedes hacerlo con checkSession(): Debes especificar los permisos concretos que necesitas. Puedes solicitar los siguientes permisos:
  • read:current_user
  • update:current_user_identities
  • create:current_user_metadata
  • update:current_user_metadata
  • delete:current_user_metadata
  • create:current_user_device_credentials
  • delete:current_user_device_credentials
Una vez que tengas el token de acceso, puedes crear una nueva instancia de auth0.Management pasándole el dominio de Auth0 de la cuenta y el token de acceso.

Obtener el perfil del usuario

Para obtener los datos del perfil del usuario, utiliza el método getUser() con userId y un callback como parámetros. El método devuelve el perfil del usuario. Ten en cuenta que el userID requerido aquí será el mismo que se obtuvo mediante el método client.userInfo. auth0Manage.getUser(userId, cb);

Actualización del perfil de usuario

Al actualizar los metadatos del usuario, primero deberá crear un objeto userMetadata y luego llamar al método patchUserMetadata, pasándole el ID del usuario y el objeto userMetadata que haya creado. Los valores de este objeto sobrescribirán los valores existentes que tengan la misma clave o agregarán otros nuevos para las claves que aún no existan en los metadatos del usuario. Para obtener más información, consulte Metadata. auth0Manage.patchUserMetadata(userId, userMetadata, cb);

Vinculación de usuarios

Vincular cuentas de usuario permitirá que una persona pueda autenticarse con cualquiera de sus cuentas y, sin importar cuál use, siga accediendo al mismo perfil al iniciar sesión. Auth0 trata todas estas cuentas como perfiles independientes de forma predeterminada, así que, si quieres que las cuentas de un usuario estén vinculadas, esta es la forma de hacerlo. El método linkUser acepta dos parámetros: el userId principal y el ID Token del usuario secundario (el token obtenido después de iniciar sesión con esta identidad). El ID de usuario en cuestión es el identificador único de la cuenta de usuario principal. El ID debe pasarse con el prefijo del proveedor, por ejemplo, auth0|1234567890 o facebook|1234567890, al usar este método. Consulta User Account Linking para obtener más información. auth0Manage.linkUser(userId, secondaryUserToken, cb); Después de vincular las cuentas, la segunda cuenta dejará de existir como una entrada independiente en la base de datos de usuarios y solo se podrá acceder a ella como parte de la cuenta principal. Cuando las cuentas están vinculadas, los metadatos de la cuenta secundaria no se fusionan con los de la cuenta principal y, si en algún momento se desvinculan, la cuenta secundaria tampoco conservará los metadatos de la cuenta principal cuando vuelva a quedar separada.