> ## 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.

> Explique le scénario d’architecture d’une application mobile qui communique avec une API.

# Applications mobiles avec une API

Dans ce scénario, nous allons créer une API de feuilles de temps pour une entreprise fictive appelée ExampleCo. L’API permettra de gérer les entrées de feuille de temps d’un employé ou d’un contractuel.

Nous allons également créer une application mobile qui servira à consulter et à enregistrer des entrées de feuille de temps dans la base de données centralisée au moyen de l’API.

<Info>
  ### En bref

  * Auth0 fournit l’authentification et l’autorisation des API pour sécuriser l’accès aux endpoint de l’API (voir [Authentification et autorisation des API](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-1#api-authentication-and-authorization))
  * Pour autoriser un utilisateur d’application mobile et lui accorder l’accès à l’API, Auth0 prend en charge le [flux de code d’autorisation avec Proof Key for Code Exchange (PKCE)](/fr-CA/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) (voir [Proof Key for Code Exchange](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-1#proof-key-for-code-exchange-pkce-))
  * L’application mobile et l’API doivent toutes deux être configurées dans l’Auth0 Dashboard (voir [Configuration d’Auth0](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-2))
  * Les permission de l’utilisateur peuvent être appliquées à l’aide de l’Authorization Extension (voir [Configurer l’Authorization Extension](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-2#configure-the-authorization-extension))
  * L’API est sécurisée en veillant à ce qu’un <Tooltip tip="" cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Access+Token">Jeton d’accès</Tooltip> valide soit transmis dans l’en-tête HTTP Authorization lors des appels à l’API (voir [Implémenter l’API](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#secure-the-endpoints))
  * Le SDK Auth0.Android peut être utilisé pour autoriser l’utilisateur de l’application mobile et obtenir un Jeton d’accès valide pouvant servir à appeler l’API (voir [Autoriser l’utilisateur](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#authorize-the-user))
  * L’application mobile peut récupérer les renseignements du profil utilisateur en décodant l’ID Token (voir [Obtenir le profil utilisateur](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#get-the-user-profile))
  * Les éléments d’interface utilisateur peuvent être affichés de façon conditionnelle selon le scope accordé à l’utilisateur (voir [Afficher des éléments d’interface utilisateur de façon conditionnelle selon le scope](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#display-ui-elements-conditionally-based-on-scope))
  * L’application mobile fournit le Jeton d’accès dans l’en-tête HTTP Authorization lorsqu’elle effectue des appels à l’API (voir [Appeler l’API](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#call-the-api))
  * Le Jeton d’accès de l’utilisateur de l’application mobile peut être renouvelé pour éviter que l’utilisateur ait à ouvrir une nouvelle session pendant une session active (voir [Renouveler le jeton](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3#renew-the-token))
</Info>

<div id="the-premise">
  ## Le contexte
</div>

ExampleCo est une jeune entreprise de services-conseils. Elle compte actuellement environ 100 employés et sous-traite aussi plusieurs activités à des contractuels externes. Tous les employés et les contractuels externes doivent remplir leurs feuilles de temps chaque semaine.

L’entreprise a développé une application de feuilles de temps, un scénario que nous avons abordé dans [Authentification unique pour les applications Web traditionnelles](/fr-CA/docs/get-started/architecture-scenarios/sso-for-regular-web-apps). Les employés à l’interne utilisent cette application Web pour remplir leurs feuilles de temps, mais l’entreprise souhaite offrir une application mobile que les employés et les contractuels pourront utiliser lorsqu’ils ne sont pas sur place. L’application servira à saisir des entrées de feuille de temps et à envoyer les données à la base de données centralisée des feuilles de temps au moyen de l’API. L’application permettra aussi aux gestionnaires d’approuver les entrées de feuille de temps.

<div id="goals-requirements">
  ### Objectifs et exigences
</div>

ExampleCo souhaite mettre en place une solution flexible. Plusieurs employés et sous-traitants pourraient devoir saisir des entrées de feuille de temps, tout comme des traitements par lots pourraient téléverser des entrées de feuille de temps à partir d’autres systèmes externes.

L’entreprise a donc décidé de développer une seule API Timesheets, qui servira à consigner le temps non seulement pour cette application mobile, mais aussi pour toutes les autres applications. Elle veut mettre en place une architecture de sécurité suffisamment flexible pour répondre à ce besoin. ExampleCo veut s’assurer qu’une grande partie du code et de la logique opérationnelle de l’application puisse être partagée entre les différentes applications.

Seuls les utilisateurs et les applications autorisés doivent être autorisés à accéder à l’API Timesheets.

<div id="learn-more">
  ## En savoir plus
</div>

* [Aperçu de la solution (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-1)
* [Configuration d’Auth0 (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-2)
* [Configuration de l’API et de l’application mobile (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-3)
* [Implémentation de l’API Node.js (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/api-implementation-nodejs)
* [Implémentation de l’application mobile Android (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/mobile-implementation-android)
* [Conclusion (Applications mobiles + API)](/fr-CA/docs/get-started/architecture-scenarios/mobile-api/part-4)
