Saltar al contenido principal
Puede agregar Login a su aplicación nativa, móvil o de una sola página mediante el Flujo de código de autorización con PKCE. Para obtener información sobre cómo funciona el flujo y por qué debería usarlo, lea Flujo de código de autorización con Proof Key for Code Exchange (PKCE). Para obtener información sobre cómo llamar a su API desde una aplicación nativa, móvil o de una sola página, lea Llame a su API mediante el Flujo de código de autorización con PKCE. Para implementar el Flujo de código de autorización con Proof Key for Code Exchange (PKCE), puede usar los siguientes recursos: Después de iniciar sesión correctamente, su aplicación tendrá acceso al y al del usuario. El token de ID contendrá información básica del perfil de usuario, y el token de acceso puede usarse para llamar al endpoint /userinfo de Auth0 o a sus propias API protegidas. Para obtener más información sobre los tokens de ID, lea ID Tokens. Para obtener más información sobre los tokens de acceso, lea Access Tokens.

Requisitos previos

Registra tu aplicación con Auth0. Para obtener más información, consulta Registrar aplicaciones nativas o Registrar aplicaciones web de una sola página.
  • Selecciona Native o Single-Page App como Tipo de aplicación, según corresponda a tu aplicación.
  • Agrega YOUR_CALLBACK_URL como URL de devolución de llamada permitida. El formato de la URL de devolución de llamada variará según el tipo de aplicación y la plataforma. Para obtener más información sobre el formato correspondiente a tu tipo de aplicación y plataforma, consulta nuestros Quickstarts de Native/Mobile y Quickstarts para aplicaciones de una sola página.
  • Asegúrate de que los Tipos de concesión de tu aplicación incluyan Código de autorización. Para obtener más información, consulta Actualizar tipos de concesión.

Crear un verificador de código

Cree un code_verifier, que es una clave aleatoria generada criptográficamente y codificada en Base64, que posteriormente se enviará a Auth0 para solicitar tokens. Para obtener más información sobre el algoritmo para crear el code_verifier, lea la sección 4.1 El cliente crea un verificador de código de la especificación Proof Key for Code Exchange.

Ejemplo de JavaScript

Ejemplo de Java

Ejemplo para Android

Ejemplo en Swift 5

Ejemplo en Objective-C

Crear un desafío de código

Genera un code_challenge a partir del code_verifier, que se enviará a Auth0 para solicitar un authorization_code. Para obtener más información sobre cómo se deriva el code_challenge del code_verifier, consulta la sección 4.2 Client Creates the Code Challenge de la especificación OAuth Proof Key for Code Exchange.

Ejemplo de JavaScript

Ejemplo en Java

Ejemplo de Swift 5

Ejemplo en Objective-C

Autoriza al usuario

Solicita la autorización del usuario y redirígelo de nuevo a tu aplicación con un authorization_code. Una vez que hayas creado el code_verifier y el code_challenge, debes obtener la autorización del usuario. Técnicamente, este es el comienzo 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;
  • 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 lo haya otorgado previamente.
Para autorizar al usuario, tu aplicación debe dirigirlo a la URL de autorización, incluyendo el code_challenge que generaste en el paso anterior y el método que utilizaste para generarlo.

Ejemplo de URL de autorización

Parámetros

Como ejemplo, el fragmento HTML de su URL de autorización al agregar login a su aplicación podría verse así:

Respuesta

Si todo sale bien, recibirás una respuesta HTTP 302. El código de autorización se incluye al final de la URL:

Solicita tokens

Intercambia tu authorization_code y code_verifier por tokens. Ahora que tienes un código de autorización, debes intercambiarlo por tokens. Con el código de autorización (code) extraído en el paso anterior, deberás enviar una solicitud POST a la URL del token junto con el code_verifier.

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 incluye los valores access_token, refresh_token, id_token y token_type:
Valide sus tokens antes de guardarlos. Para saber cómo hacerlo, lea Validar ID Tokens y Validar Tokens de acceso.
Tokens de ID contienen información del usuario que debe decodificarse y extraerse. Tokens de acceso se usan para llamar al endpoint /userinfo de la API de autenticación de Auth0 o a otra API. Si llama a su propia API, lo primero que deberá hacer es verificar el Token de acceso. Tokens de actualización se usan para obtener un nuevo token de acceso o token de ID después de que el anterior haya expirado. 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.
Los tokens de actualización deben almacenarse de forma segura, ya que permiten que un usuario permanezca autenticado prácticamente de forma indefinida.

Casos de uso

Solicitud de autenticación básica

Este ejemplo muestra la solicitud más básica que puede realizar para autorizar al usuario en el paso 1. Muestra la pantalla de Login de Auth0 y permite que el usuario inicie sesión con cualquiera de las conexiones que tenga configuradas: Ahora, cuando solicites tokens, tu ID Token contendrá los claims más básicos. Cuando decodifiques el ID Token, tendrá un aspecto similar a:

Solicitar el nombre y la foto de perfil del usuario

Además de la autenticación habitual del usuario, este ejemplo muestra cómo solicitar datos adicionales del usuario, como su nombre y su foto de perfil. Para solicitar el nombre y la foto de perfil del usuario, debes agregar los alcances adecuados al autorizar al usuario: Ahora, cuando solicites tokens, tu token de ID contendrá los claims de nombre e imagen solicitados. Cuando decodifiques el token de ID, tendrá un aspecto similar a:

Solicitar el inicio de sesión de usuarios con GitHub

Además de la autenticación habitual de usuarios, este ejemplo muestra cómo enviar a los usuarios directamente a un Proveedor de identidad social, como GitHub. Para que este ejemplo funcione, debe ir a Auth0 Dashboard > Authentication > Social y configurar la conexión correspondiente. Obtenga el nombre de la conexión en la pestaña Settings. Para enviar a los usuarios directamente a la pantalla de inicio de sesión de GitHub, debe pasar el parámetro connection y establecer su valor en el nombre de la conexión (en este caso, github) al autorizar al usuario: Ahora, cuando solicites tokens, tu token de ID contendrá un claim sub con el id único del usuario que devuelve GitHub. Cuando decodifiques el token de ID, se verá de forma similar a:

Más información