Este tutorial le ayudará a invocar su propia API mediante el Flujo de código de autorización. Si desea obtener más información sobre cómo funciona este flujo y por qué debería usarlo, consulte Flujo de código de autorización. Si desea aprender a agregar Login a su aplicación web tradicional, consulte Agregar Login mediante el Flujo de código de autorización.
- Quickstarts para aplicaciones web tradicionales: La forma más sencilla de implementar el flujo.
- Authentication API: Si prefiere crear su propia solución, siga leyendo para aprender a invocar nuestra API directamente.
Requisitos previos
-
Registre su aplicación en Auth0.
- Seleccione Regular Web Apps como Application Type.
- Agregue
{https://yourApp/callback}como Allowed Callback URL. - Asegúrese de que Grant Types de su aplicación incluya código de autorización. Para saber cómo hacerlo, consulte Update Grant Types.
- Si quiere que su aplicación pueda usar tokens de actualización, asegúrese de que Grant Types de la aplicación incluya refresh token. Para saber cómo hacerlo, consulte Update Grant Types. Para obtener más información sobre los Tokens de actualización, consulte tokens de actualización.
-
Registre su API en Auth0
- Si quiere que su API reciba tokens de actualización para poder obtener tokens nuevos cuando caduquen los anteriores, habilite Allow Offline Access.
Pasos
Autoriza al usuario
Autoriza al usuario
Este paso puede incluir uno o más de los siguientes procesos:
Como ejemplo, tu fragmento HTML para la URL de autorización al agregar inicio de sesión a tu aplicación podría verse así:
- Autenticar al usuario
- Redirigir al usuario a un Proveedor de identidad para gestionar la autenticación
- Comprobar si hay sesiones activas de inicio de sesión único (SSO)
- Obtener el consentimiento del usuario para el nivel de permisos solicitado, a menos que ya se haya otorgado previamente.
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
audience - puedes incluir alcances adicionales compatibles con la API de destino
| Nombre del parámetro | Descripción |
|---|---|
response_type | Indica el tipo de credencial que devolverá Auth0 (code o token). Para este flujo, el valor debe ser code. |
client_id | El ID de cliente de tu aplicación. Puedes encontrar este valor en la configuración de la aplicación. |
redirect_uri | La URL a la que Auth0 redirigirá el navegador después de que el usuario haya concedido la autorización. El código de autorización estará disponible en el parámetro code de la URL. Debes especificar esta URL como una URL de devolución de llamada válida en la configuración de la aplicación.Advertencia: Según la especificación OAuth 2.0, Auth0 elimina todo lo que aparece después del hash y no respeta ningún fragmento. |
scope | Especifica los alcances para los que quieres solicitar autorización, que determinan qué claims (o atributos de usuario) quieres que se devuelvan. Deben separarse con un espacio. Puedes solicitar cualquiera de los alcances estándar de OpenID Connect (OIDC) sobre usuarios, como profile o email, claims personalizados que cumplan con un formato con espacio de nombres, o cualquier alcance compatible con la API de destino (por ejemplo, read:contacts). Incluye offline_access para obtener un Token de actualización (asegúrate de que el campo Allow Offline Access esté habilitado en la configuración de la aplicación). |
audience | El identificador único de la API a la que tu aplicación web quiere acceder. Usa el valor de Identifier en la pestaña Configuración de la API que creaste como parte de los requisitos previos de este tutorial. |
state | (recomendado) Una cadena alfanumérica arbitraria y opaca que tu aplicación añade a la solicitud inicial y que Auth0 incluye al redirigir de vuelta a tu aplicación. Para ver cómo usar este valor para prevenir ataques de Cross-site Request Forgery (CSRF), consulta Mitigate CSRF Attacks With State Parameters. |
organization | (opcional) id de la organización que se usará al autenticar a un usuario. Si no se proporciona y tu aplicación está configurada para Display Organization Prompt, el usuario podrá introducir el nombre de la organización al autenticarse. |
invitation | (opcional) id del ticket de invitación de la organización. Al invitar a un miembro a una Organización, tu aplicación debe gestionar la aceptación de la invitación reenviando los pares clave-valor invitation y organization cuando el usuario acepte la invitación. |
Respuesta
Si todo sale bien, recibirás una respuestaHTTP 302. El código de autorización se incluye al final de la URL:Solicita tokens
Solicita tokens
Ahora que tienes un código de autorización, debes intercambiarlo por tokens. Con el código de autorización (
Los ID Token contienen información del usuario que debe decodificarse y extraerse.Los tokens de acceso se utilizan para llamar al endpoint /userinfo de la API de autenticación de Auth0 u otra API. Si estás llamando a tu propia API, lo primero que esta deberá hacer es verificar el token de acceso.Los tokens de actualización se utilizan para obtener un nuevo token de acceso o token de ID una vez que el anterior ha expirado. El
code) obtenido en el paso anterior, deberás hacer un POST a la URL de token.Ejemplo de POST a la URL del token
Parámetros
| Nombre del parámetro | Descripción |
|---|---|
grant_type | Establece este valor en authorization_code. |
code | El authorization_code obtenido en el paso anterior de este tutorial. |
client_id | El ID de cliente de tu aplicación. Puedes encontrar este valor en la configuración de la aplicación. |
client_secret | El Secreto del cliente de su aplicación. Puede encontrar este valor en la configuración de la aplicación. Para obtener más información sobre los métodos de autenticación de aplicaciones disponibles, consulte Credenciales de la aplicación. |
redirect_uri | La URL de devolución de llamada válida configurada en la configuración de la aplicación. Debe coincidir exactamente con el valor de redirect_uri enviado a la URL de autorización en el paso anterior de este tutorial. Tenga en cuenta que debe estar codificado como URL. |
Respuesta
Si todo va bien, recibirás una respuestaHTTP 200 con una carga útil que contiene los valores access_token, refresh_token, id_token y token_type: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.Haz una llamada a la API
Haz una llamada a la API
Para llamar a su API desde una aplicación web tradicional, la aplicación debe enviar el token de acceso obtenido como Bearer Token en el encabezado Authorization de la solicitud HTTP.
Canjear el token de actualización
Canjear el token de actualización
Ya has recibido un token de actualización si has seguido este tutorial y completado los siguientes pasos:
- configurado la API para permitir el acceso sin conexión
- incluiste el scope
offline_accessal iniciar la solicitud de autenticación a través del endpoint de autorización.
POST al endpoint /oauth/token de la Authentication API con grant_type=refresh_token.Ejemplo de POST a la URL del token
Parámetros
| Nombre del parámetro | Descripción |
|---|---|
grant_type | Configura este valor como refresh_token. |
client_id | El ID de cliente de su aplicación. Puede encontrar este valor en la Configuración de la aplicación. |
refresh_token | El token de actualización que se va a usar. |
scope | (opcional) Una lista de permisos de scope solicitados separada por espacios. Si no se envía, se usarán los alcances originales; de lo contrario, puedes solicitar un conjunto reducido de alcances. Ten en cuenta que debe estar codificado para URL. |
Respuesta
Si todo va bien, recibirás una respuestaHTTP 200 con una carga útil que contiene un nuevo access_token, su duración en segundos (expires_in), los valores de scope otorgados y el token_type. Si el scope del token inicial incluía openid, la respuesta también incluirá un nuevo id_token: