Skip to main content
Este tutorial le ayudará a llamar a su propia API con el Flujo híbrido. Si desea obtener más información sobre cómo funciona este flujo y por qué debería usarlo, consulte Flujo híbrido.
Auth0 facilita que su aplicación implemente el Flujo de código de autorización mediante:
  • Authentication API: Si prefiere crear su propia solución, siga leyendo para aprender a llamar directamente a nuestra API.

Requisitos previos

Antes de comenzar este tutorial:
  • Registre su aplicación en Auth0.
    • Seleccione el Tipo de aplicación adecuado.
    • Agregue una URL de callback permitida: {https://yourApp/callback}.
    • Asegúrese de que los Tipos de concesión de su aplicación incluyan Implícito y Código de autorización. Para saber cómo hacerlo, consulte Actualizar tipos de concesión.
    • Si desea que su aplicación pueda usar Tokens de actualización, asegúrese de que los Tipos de concesión de la aplicación incluyan Token de actualización. Para saber cómo hacerlo, consulte Actualizar tipos de concesión. Para obtener más información sobre los Tokens de actualización, consulte Tokens de actualización.
  • Registre su API en Auth0
    • Si desea que su API reciba Tokens de actualización para poder obtener tokens nuevos cuando caduquen los anteriores, habilite Permitir acceso sin conexión.

Pasos

  1. Autorizar al usuario: Solicite autorización al usuario y rediríjalo de vuelta a su aplicación con un código de autorización.
  2. Solicitar tokens: Intercambie su código de autorización por tokens.
  3. Llamar a la API: Use el Token de acceso obtenido para llamar a su API.
  4. Renovar tokens: Use un Token de actualización para solicitar tokens nuevos cuando los actuales expiren.
Opcional: Explorar casos de uso de muestra

Autorizar al usuario

Este paso puede incluir uno o más de los siguientes procesos:
  • Autenticar al usuario
  • Redirigir al usuario a un para gestionar la autenticación
  • Comprobar si existen sesiones activas de (SSO)
  • Obtener el consentimiento del usuario para el nivel de permisos solicitado, a menos que ya se haya otorgado previamente.
Para autorizar al usuario, tu aplicación debe dirigirlo a la URL de autorización.

Ejemplo de URL de autorización

Parámetros
Ten en cuenta que, para autorizar a un usuario al llamar a una API personalizada, debes:
  • incluir un parámetro
  • incluir alcances adicionales compatibles con la API de destino
Como ejemplo, tu fragmento HTML para la URL de autorización al agregar el inicio de sesión a tu aplicación podría verse así:

Respuesta

Si todo sale bien, recibirá una respuesta HTTP 302. Las credenciales solicitadas están codificadas en el cuerpo:
Tenga en cuenta que los valores devueltos dependen de lo que haya solicitado como response_type. Auth0 también devolverá cualquier valor de state que haya incluido en su llamada a la URL de autorización.
El Token de acceso que recibe en esta transacción es solo el primero que recibirá. No recomendamos usarlo para llamar a APIs.
Valide sus tokens antes de guardarlos. Para saber cómo hacerlo, lea Validar tokens de ID y Validar tokens de acceso.
Cuando decodifique y analice su , observará un claim adicional, c_hash, que contiene un hash del code. Este claim es obligatorio cuando se emite un token de ID al mismo tiempo que un code, y debe validarlo:
  1. Con el algoritmo hash especificado en el claim alg del encabezado del ID Token, calcule el hash de los octetos de la representación ASCII del code.
  2. Codifique en Base64url la mitad izquierda del hash.
  3. Compruebe que el resultado coincida con el valor de c_hash.

Solicitar tokens

Ahora que tiene un código de autorización, debe canjearlo por tokens. Con el código de autorización extraído (code) en el paso anterior, deberá enviar una solicitud POST a la URL del token. El que reciba en este paso es el que debe usar para llamar a su API. Asegúrese de mantenerlo separado del token de acceso que recibió en el paso anterior de este tutorial.

Ejemplo de POST a la URL del token

Parámetros

Respuesta

Si todo va bien, recibirás una respuesta HTTP 200 con una carga útil que incluye los valores access_token, refresh_token, id_token y token_type:
Valida tus tokens antes de guardarlos. Para saber cómo hacerlo, consulta Validar tokens de ID y Validar tokens de acceso.
Los tokens de ID contienen información del usuario que debe decodificarse y extraerse. Los tokens de acceso se usan para llamar al endpoint /userinfo de la Authentication API de Auth0 o a otra API. Si llamas a tu propia API, lo primero que deberá hacer es verificar el token de acceso. Los tokens de actualización se usan para obtener un nuevo token de acceso o token de ID una vez que el anterior haya expirado. refresh_token solo estará presente en la respuesta si incluiste el scope offline_access y habilitaste Allow Offline Access para tu API en el Dashboard.
Los tokens de actualización deben almacenarse de forma segura, ya que permiten que un usuario permanezca autenticado prácticamente de forma indefinida.

Llamar a la API

Para llamar a su API desde una aplicación web estándar (o en casos similares en los que las credenciales de la aplicación pueden almacenarse de forma segura), la aplicación debe enviar el Token de acceso obtenido como Bearer Token en el encabezado Authorization de la solicitud HTTP.

Tokens de actualización

Ya recibió un token de actualización si ha estado siguiendo este tutorial y completó lo siguiente:
  • configuró su API para permitir acceso sin conexión
  • incluyó el scope offline_access al iniciar la solicitud de autenticación a través del endpoint de autorización.
Puede usar el para obtener un nuevo token de acceso. Normalmente, un usuario solo necesitará un nuevo token de acceso después de que caduque el anterior o cuando obtenga acceso a un nuevo recurso por primera vez. Es una mala práctica llamar al endpoint para obtener un nuevo token de acceso cada vez que llame a una API, y Auth0 aplica límites de tasa que restringen la cantidad de solicitudes al endpoint que pueden ejecutarse con el mismo token desde la misma IP. Para actualizar su token, haga una solicitud POST al endpoint /oauth/token de la Authentication API con grant_type=refresh_token.

Ejemplo de solicitud POST a la URL del token

Parámetros

Respuesta

Si todo sale bien, recibirás una respuesta HTTP 200 con una carga útil que contiene un nuevo access_token, su duración en segundos (expires_in), los valores de scope otorgados y token_type. Si el scope del token inicial incluía openid, la respuesta también incluirá un nuevo id_token:
Valide sus tokens antes de guardarlos. Para saber cómo hacerlo, consulte Validar tokens de ID y Validar tokens de acceso.

Casos de uso de ejemplo

Personalizar tokens

Puede usar Rules para cambiar los alcances que se devuelven en los tokens de acceso y/o agregar claims a los tokens de acceso y a los ID Tokens. (Para obtener más información sobre Rules, consulte Auth0 Rules.) Para ello, agregue la siguiente Rule, que se ejecutará después de que el usuario se autentique:
Los alcances estarán disponibles en el token una vez que se hayan ejecutado todas las Rules.
Auth0 devuelve la información del perfil en un formato estructurado de claims, tal como lo define la especificación 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 conflictos.

Más información