Skip to main content
Vous pouvez ajouter la connexion à votre application native, mobile ou monopage en utilisant le flux du code d’autorisation avec PKCE. Pour comprendre comment ce flux fonctionne et pourquoi vous devriez l’utiliser, consultez Authorization Code Flow with Proof Key for Code Exchange (PKCE). Pour savoir comment appeler votre API à partir d’une application native, mobile ou monopage, consultez Call Your API Using Authorization Code Flow with PKCE. Pour mettre en œuvre le flux Authorization Code avec clé de preuve pour l’échange de code (PKCE), vous pouvez utiliser les ressources suivantes : Après une connexion réussie, votre application aura accès au et au de l’utilisateur. Le jeton d’identité contiendra les renseignements de base du profil utilisateur, et le jeton d’accès peut être utilisé pour appeler le endpoint Auth0 /userinfo ou vos propres API protégées. Pour en savoir plus sur les jetons d’identité, consultez ID Tokens. Pour en savoir plus sur les jetons d’accès, consultez Access Tokens.

Prérequis

Enregistrez votre application dans Auth0. Pour en savoir plus, consultez Enregistrer des applications natives ou Enregistrer des applications Web monopage.
  • Sélectionnez un Type d’application Native ou Application monopage, selon votre type d’application.
  • Ajoutez une URL de rappel autorisée : YOUR_CALLBACK_URL. Le format de votre URL de rappel varie selon votre type d’application et votre plateforme. Pour en savoir plus sur le format correspondant à votre type d’application et à votre plateforme, consultez nos Quickstarts Native/Mobile et Quickstarts pour les applications monopages.
  • Assurez-vous que les types d’octroi de votre application comprennent Code d’autorisation. Pour en savoir plus, consultez Mettre à jour les types d’octroi.

Créer le code_verifier

Créez un code_verifier, c’est-à-dire une clé aléatoire encodée en Base64 générée de façon cryptographiquement sûre, qui sera ensuite envoyée à Auth0 pour demander des jetons. Pour en savoir plus sur l’algorithme servant à créer le code_verifier, consultez la section 4.1 Client Creates a Code Verifier de la spécification clé de preuve pour l’échange de code.

Exemple en Javascript

Exemple en Java

Exemple pour Android

Exemple en Swift 5

Exemple en Objective-C

Créer un code challenge

Générez un code_challenge à partir du code_verifier, qui sera envoyé à Auth0 pour demander un authorization_code. Pour en savoir plus sur la façon dont le code_challenge est généré à partir du code_verifier, consultez la section 4.2 Le client crée le code challenge de la spécification OAuth sur la clé de preuve pour l’échange de code.

Exemple en Javascript

Exemple Java

Exemple en Swift 5

Exemple en Objective-C

Autoriser l’utilisateur

Demandez l’autorisation de l’utilisateur et redirigez-le vers votre application avec un authorization_code. Une fois que vous avez créé le code_verifier et le code_challenge, vous devez obtenir l’autorisation de l’utilisateur. Techniquement, c’est le début du , et cette étape peut inclure un ou plusieurs des processus suivants :
  • Authentifier l’utilisateur;
  • Rediriger l’utilisateur vers un pour prendre en charge l’authentification;
  • Vérifier s’il existe des sessions actives d’authentification unique (SSO);
  • Obtenir le consentement de l’utilisateur pour le niveau de permission demandé, à moins que ce consentement n’ait déjà été accordé.
Pour autoriser l’utilisateur, votre application doit l’envoyer vers l’URL d’autorisation, en incluant le code_challenge que vous avez généré à l’étape précédente ainsi que la méthode utilisée pour générer le code_challenge.

Exemple d’URL d’autorisation

Paramètres

Par exemple, votre extrait HTML pour votre URL d’autorisation, lors de l’ajout de la connexion à votre application, pourrait ressembler à ceci :

Réponse

Si tout se passe bien, vous recevrez une réponse HTTP 302. Le code d’autorisation est inclus à la fin de l’URL :

Demander des jetons

Échangez votre authorization_code et votre code_verifier contre des jetons. Maintenant que vous avez un code d’autorisation, vous devez l’échanger contre des jetons. À l’aide du code d’autorisation (code) extrait à l’étape précédente, vous devrez envoyer une requête POST à l’URL de jeton en y joignant le code_verifier.

Exemple de requête POST à l’URL du jeton

Paramètres

Réponse

Si tout se passe bien, vous recevrez une réponse HTTP 200 dont le corps contient les valeurs access_token, refresh_token, id_token et token_type :
Validez vos jetons avant de les enregistrer. Pour savoir comment faire, consultez Valider les jetons d’identité et Valider les jetons d’accès.
Les jetons d’identité contiennent des renseignements sur l’utilisateur qui doivent être décodés et extraits. Les jetons d’accès servent à appeler le point de terminaison /userinfo de l’API d’authentification Auth0 ou une autre API. Si vous appelez votre propre API, la première chose qu’elle devra faire sera de vérifier le jeton d’accès. Les jetons d’actualisation servent à obtenir un nouveau jeton d’accès ou un nouveau jeton d’identité après l’expiration du précédent. Le refresh_token ne sera présent dans la réponse que si vous avez inclus le scope offline_access et activé Allow Offline Access pour votre API dans le Dashboard.
Les jetons d’actualisation doivent être stockés de manière sécurisée, puisqu’ils permettent à un utilisateur de rester authentifié pratiquement indéfiniment.

Cas d’utilisation

Requête d’authentification de base

Cet exemple montre la requête la plus simple que vous pouvez envoyer lorsque vous autorisez l’utilisateur à l’étape 1. Il affiche l’écran de connexion Auth0 et permet à l’utilisateur d’ouvrir une session avec n’importe laquelle de vos connexions configurées : Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra les claims de base. Lorsque vous décoderez le jeton d’identité, il ressemblera à ceci :

Demander le nom et la photo de profil de l’utilisateur

En plus du processus habituel d’authentification de l’utilisateur, cet exemple montre comment demander des informations supplémentaires sur l’utilisateur, comme son nom et sa photo de profil. Pour demander le nom et la photo de profil de l’utilisateur, vous devez ajouter les scopes appropriés lorsque vous autorisez l’utilisateur : Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra les claims « name » et « picture » demandés. Lorsque vous décoderez le jeton d’identité, il ressemblera à ceci :

Demander à l’utilisateur de se connecter avec GitHub

En plus du processus habituel d’authentification des utilisateurs, cet exemple montre comment les diriger directement vers un fournisseur d’identité social, comme GitHub. Pour que cet exemple fonctionne, vous devez accéder à Auth0 Dashboard > Authentication > Social et configurer la connexion appropriée. Obtenez le nom de la connexion dans l’onglet Settings. Pour envoyer les utilisateurs directement à l’écran de connexion GitHub, vous devez transmettre le paramètre connection et définir sa valeur sur le nom de la connexion (dans ce cas-ci, github) lors de l’autorisation de l’utilisateur : Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra une propriété sub avec l’ID unique de l’utilisateur renvoyé par GitHub. Lorsque vous décoderez le jeton d’identité, il ressemblera à ceci :

En savoir plus