> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Explica el escenario de arquitectura con una aplicación móvil que se comunica con una API.

# Aplicaciones móviles con una API

En este escenario, crearemos una API de registro de horas para una empresa ficticia llamada ExampleCo. La API permitirá gestionar las entradas de horas de un empleado o un contratista.

También crearemos una aplicación móvil que se utilizará para ver y registrar entradas en la base de datos centralizada de registro de horas mediante la API.

<Info>
  ### En resumen

  * Auth0 proporciona autenticación y autorización de API para proteger el acceso a los endpoints de la API (consulte [Autenticación y autorización de API](/es/docs/get-started/architecture-scenarios/mobile-api/part-1#api-authentication-and-authorization))
  * Para autorizar a un usuario de una aplicación móvil y concederle acceso a la API, Auth0 admite el [Flujo de código de autorización con PKCE (Proof Key for Code Exchange)](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) (consulte [Proof Key for Code Exchange](/es/docs/get-started/architecture-scenarios/mobile-api/part-1#proof-key-for-code-exchange-pkce-))
  * Tanto la aplicación móvil como la API deben configurarse en el Auth0 Dashboard (consulte [Configuración de Auth0](/es/docs/get-started/architecture-scenarios/mobile-api/part-2))
  * Los permisos de usuario se pueden aplicar mediante Authorization Extension (consulte [Configurar Authorization Extension](/es/docs/get-started/architecture-scenarios/mobile-api/part-2#configure-the-authorization-extension))
  * La API se protege asegurándose de que se envíe un <Tooltip tip="" cta="Ver glosario" href="/es/docs/glossary?term=Access+Token">Token de acceso</Tooltip> válido en el encabezado HTTP Authorization al realizar llamadas a la API (consulte [Implementar la API](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#secure-the-endpoints))
  * El SDK de Auth0.Android puede utilizarse para autorizar al usuario de la aplicación móvil y obtener un Token de acceso válido que pueda usarse para llamar a la API (consulte [Autorizar al usuario](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#authorize-the-user))
  * La aplicación móvil puede recuperar la información del perfil del usuario decodificando el ID Token (consulte [Obtener el perfil del usuario](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#get-the-user-profile))
  * Los elementos de la interfaz de usuario pueden mostrarse de forma condicional según el scope que se haya concedido al usuario (consulte [Mostrar elementos de la interfaz de usuario de forma condicional según el scope](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#display-ui-elements-conditionally-based-on-scope))
  * La aplicación móvil envía el Token de acceso en el encabezado HTTP Authorization al realizar llamadas a la API (consulte [Llamar a la API](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#call-the-api))
  * El Token de acceso del usuario de la aplicación móvil puede renovarse para garantizar que no tenga que volver a iniciar sesión durante la sesión (consulte [Renovar el token](/es/docs/get-started/architecture-scenarios/mobile-api/part-3#renew-the-token))
</Info>

<div id="the-premise">
  ## La premisa
</div>

ExampleCo es una startup de consultoría. Actualmente tiene aproximadamente 100 empleados y además subcontrata varias actividades a contratistas externos. Todos los empleados y contratistas externos deben completar su registro de horas cada semana.

La empresa ha desarrollado una aplicación de registro de horas, un escenario que tratamos en [Inicio de sesión único para aplicaciones web tradicionales](/es/docs/get-started/architecture-scenarios/sso-for-regular-web-apps). Los empleados internos usan esta aplicación web para completar su registro de horas, pero la empresa quiere una aplicación móvil para que empleados y contratistas la usen cuando no estén en las instalaciones. La aplicación se usará para registrar entradas de horas y enviar los datos a la base de datos centralizada de registro de horas mediante la API. La aplicación también permitirá a los gerentes aprobar las entradas de horas.

<div id="goals-requirements">
  ### Objetivos y requisitos
</div>

ExampleCo quiere crear una solución flexible. Es posible que haya varios empleados y contratistas que deban poder registrar entradas de horas, así como procesos por lotes que puedan cargar esas entradas desde otros sistemas externos.

Por ello, la empresa ha decidido desarrollar una única API de registro de horas que se utilizará para registrar tiempo no solo desde esta aplicación móvil, sino también desde todas las demás aplicaciones. Quieren establecer una arquitectura de seguridad lo suficientemente flexible como para admitirlo. ExampleCo quiere garantizar que gran parte del código y de la lógica de negocio de la aplicación pueda compartirse entre las distintas aplicaciones.

Se requiere que solo los usuarios y las aplicaciones autorizados tengan acceso a la API de registro de horas.

<div id="learn-more">
  ## Más información
</div>

* [Descripción general de la solución (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/part-1)
* [Configuración de Auth0 (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/part-2)
* [Configuración de la API y de la aplicación móvil (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/part-3)
* [Implementación de la API de Node.js (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/api-implementation-nodejs)
* [Implementación de la aplicación móvil para Android (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/mobile-implementation-android)
* [Conclusión (Aplicaciones móviles + API)](/es/docs/get-started/architecture-scenarios/mobile-api/part-4)
