Instalación
- Desde el CDN:
<script src="https://cdn.auth0.com/js/auth0-spa-js/2.0/auth0-spa-js.production.js"></script>. Para obtener más información, consulte las preguntas frecuentes. - Con npm:
npm install @auth0/auth0-spa-js - Con yarn:
yarn add @auth0/auth0-spa-js
Primeros pasos
Crear el cliente
Auth0Client. Crea la instancia de Auth0Client antes de renderizar o inicializar la aplicación. Puedes hacerlo con el método async/await o con promesas. Solo debes crear una instancia del cliente.
Al usar createAuth0Client, se hacen automáticamente un par de cosas:
- Se crea una instancia de
Auth0Client. - Se llama a
getTokenSilentlypara actualizar la sesión del usuario. - Se suprimen todos los errores de
getTokenSilently, exceptologin_required.
Usa async/await
Usar promesas
También puede crear el cliente directamente con el constructorAuth0Client. Esto puede resultar útil si desea:
- Omitir la llamada a
getTokenSilentlydurante la inicialización. - Implementar un manejo de errores personalizado.
- Inicializar el SDK de forma síncrona.
Inicie sesión y obtenga información del usuario
<button id="login">Click to Login</button>
Escuche los eventos de clic del botón que creó. Cuando se produzca el evento, use el método de inicio de sesión deseado para autenticar al usuario (loginWithRedirect() en este ejemplo). Después de que el usuario se haya autenticado, puede recuperar su perfil con el método getUser().
Usa async/await
Usar promesas
Llamar a una API
getTokenSilently para recuperar el Token de acceso:
<button id="callApi">Llamar a una API</button>
Usa async/await
Uso de promesas
Cerrar sesión
<button id="logout">Logout</button>
Cambiar las opciones de almacenamiento
cacheLocation como localstorage al inicializar el SDK. Esto puede ayudar a mitigar algunos de los efectos de las tecnologías de privacidad del navegador que impiden el acceso a la cookie de sesión de Auth0 al almacenar Tokens de acceso durante más tiempo.
Usar Tokens de actualización rotativos
useRefreshTokens en true durante la inicialización:
también deberán configurarse para tu inquilino antes de poder usarse en tu SPA.
Una vez configurado, el SDK solicitará el scope offline_access durante el proceso de autorización. Además, getTokenSilently llamará directamente al endpoint /oauth/token para intercambiar tokens de actualización por tokens de acceso.
El SDK respetará la configuración de almacenamiento al guardar los tokens de actualización. Si el SDK se configuró con el mecanismo predeterminado de almacenamiento en memoria, los tokens de actualización se perderán al recargar la página.
Uso
Inicio de sesión con redirección
/authorize de Auth0 para iniciar el flujo de Universal Login:
Inicio de sesión con ventana emergente
error.popup.close:
popup personalizada en el objeto options:
Callback de redirección de inicio de sesión
handleRedirectCallback para completar el flujo de inicio de sesión:
Obtener un Token de acceso sin interacción
prompt=none, o usando un Token de actualización rotativo. Los Tokens de actualización se usan cuando useRefreshTokens se establece en true al configurar el SDK.
Obtener un Token de acceso de forma silenciosa sin usar Tokens de actualización no funcionará en navegadores que bloquean las cookies de terceros, como Safari y Brave. Para obtener más información sobre la solución alternativa del dominio personalizado, consulte Solucionar problemas al renovar tokens cuando se usa Safari.
getTokenSilently() requiere que tengas habilitada la opción Allow Skipping User Consent en la configuración de la API del Dashboard. Además, el consentimiento del usuario no se puede omitir en ‘localhost’.
Obtener un Token de acceso con una ventana emergente
getTokenSilently, este método para obtener un Token de acceso funciona en navegadores en los que las cookies de terceros están bloqueadas de forma predeterminada:
Obtener un Token de acceso para una audiencia distinta
getTokenSilently para obtener un Token de acceso con una y un scope distintos de los solicitados en el momento de la autenticación del usuario.
Esto solo funciona cuando no se usan Tokens de actualización (
useRefreshTokens: false), ya que un Token de actualización está vinculado a la audiencia y al scope específicos que se solicitaron en el momento de la autenticación del usuario.Obtener el usuario
getUser:
Obtener los claims del ID Token
getIdTokenClaims:
Cerrar sesión (predeterminado)
logout:
Cerrar sesión sin ID de cliente
logout e incluyendo clientId: null: