Este tutorial te ayuda a llamar a tu propia API desde una aplicación nativa, móvil o de una sola página mediante el Flujo de código de autorización con PKCE. Para saber cómo funciona el flujo y por qué deberías usarlo, consulta Flujo de código de autorización con Proof Key for Code Exchange (PKCE). Para aprender a añadir Login a tu aplicación nativa, móvil o de una sola página, consulta Añadir Login mediante el Flujo de código de autorización con PKCE.
- SDK móviles de Auth0 y SDK de aplicaciones de una sola página de Auth0: la forma más sencilla de implementar el flujo, ya que harán gran parte del trabajo por ti. Nuestros Quickstarts para móviles y Quickstarts para aplicaciones de una sola página te guiarán a lo largo del proceso.
- Authentication API: si prefieres crear tu propia solución, sigue leyendo para aprender a llamar a nuestra API directamente.
Requisitos previos
-
Registre la aplicación en Auth0.
- Seleccione Native o Single-Page App en Tipo de aplicación, según corresponda a su aplicación.
- Agregue
{yourCallbackUrl}como URL de devolución de llamada permitida. El formato de la URL de devolución de llamada varía según el tipo de aplicación y la plataforma. Para obtener más información sobre el formato correspondiente a su tipo de aplicación y plataforma, consulte nuestros Quickstarts de Native/Mobile y Quickstarts de Single-Page App. - Asegúrese de que los Tipos de concesión de la aplicación incluyan código de autorización. Para saber cómo hacerlo, consulte Actualizar tipos de concesión.
- Si quiere 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 quiere que su API reciba tokens de actualización para obtener tokens nuevos cuando los anteriores expiren, habilite Permitir acceso sin conexión.
Pasos
- Crear verificador de código:
Genera un
code_verifierque se enviará a Auth0 para solicitar tokens. - Crear desafío de código:
Genera un
code_challengea partir delcode_verifierque se enviará a Auth0 para solicitar unauthorization_code. - Autorizar al usuario:
Solicita la autorización del usuario y redirígelo a tu aplicación con un
authorization_code. - Solicitar tokens:
Intercambia tu
authorization_codeycode_verifierpor tokens. - Llamar a la API: Usa el Token de acceso obtenido para llamar a tu API.
- Tokens de actualización: Usa un token de actualización para solicitar nuevos tokens cuando los actuales expiren.
Crear el verificador de código
code_verifier, que es una clave aleatoria codificada en Base64 y criptográficamente segura, que posteriormente se enviará a Auth0 para solicitar tokens.
Ejemplo de JavaScript
Ejemplo en Java
Ejemplo para Android
Ejemplo en Swift 5
Ejemplo en Objective-C
Crear el desafío de código
code_challenge a partir del code_verifier que se enviará a Auth0 para solicitar un authorization_code.
Ejemplo de Javascript
Ejemplo en Java
Ejemplo en Swift 5
Ejemplo en Objective-C
code_verifier y el code_challenge, debes obtener la autorización del usuario. Técnicamente, este es el inicio del , y 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;
- Verificar 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.
code_challenge que generaste en el paso anterior y el método que usaste para generarlo.
Parámetros
- incluir un parámetro
- puedes incluir alcances adicionales admitidos por la API de destino
Como ejemplo, tu fragmento HTML para la URL de autorización al llamar a una API podría verse así:
Respuesta
HTTP 302. El código de autorización se incluye al final de la URL:
Solicitar tokens
code) en el paso anterior, deberá realizar un POST a la URL del token y enviar también el code_verifier.
Ejemplo de una solicitud POST a la URL del token
Parámetros
Respuesta
access_token, refresh_token, id_token y token_type:
refresh_token solo estará presente en la respuesta si incluyó el scope offline_access y habilitó Allow Offline Access para su API en el Dashboard.
Llamar a la API
Tokens de actualización
- configuró su API para permitir acceso sin conexión
- incluyó el scope
offline_accesscuando inició la solicitud de autenticación a través del endpoint de autorización.
POST al endpoint /oauth/token en la Authentication API, usando grant_type=refresh_token.
Ejemplo de solicitud POST a la URL del token
Parámetros
Respuesta
HTTP 200 con una carga útil que incluye un nuevo access_token, su duración en segundos (expires_in), los valores de scope concedidos y token_type. Si el scope del token inicial incluía openid, la respuesta también incluirá un nuevo id_token: