Ce tutoriel explique comment appeler votre propre API à partir d’une application native, mobile ou monopage à l’aide du flux de code d’autorisation avec PKCE. Pour savoir comment fonctionne ce flux et pourquoi vous devriez l’utiliser, consultez Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE). Pour apprendre à ajouter la connexion à votre application native, mobile ou monopage, consultez Ajouter la connexion à l’aide du flux de code d’autorisation avec PKCE.
- SDK mobiles Auth0 et SDK Auth0 pour application monopage : la façon la plus simple d’implémenter ce flux; ces SDK prennent en charge la plus grande partie du travail. Nos Quickstarts mobiles et Quickstarts pour applications monopages vous guideront tout au long du processus.
- Authentication API : si vous préférez créer votre propre solution, poursuivez votre lecture pour apprendre à appeler notre API directement.
Prérequis
-
Enregistrez l’application dans Auth0.
- Sélectionnez Application Type : Native ou application monopage, selon le type de votre application.
- Ajoutez
{yourCallbackUrl}comme Allowed Callback URL. Le format de l’URL de rappel varie selon le type de votre application et votre plateforme. Pour en savoir plus sur le format propre à votre type d’application et à votre plateforme, consultez nos Quickstarts Native/Mobile et Quickstarts application monopage. - Assurez-vous que Grant Types inclut Authorization Code. Pour savoir comment faire, consultez Update Grant Types.
- Si vous voulez que votre application puisse utiliser des Jetons d’actualisation, assurez-vous que Grant Types inclut Jeton d’actualisation. Pour savoir comment faire, consultez Update Grant Types. Pour en savoir plus sur les Jetons d’actualisation, consultez Refresh Tokens.
-
Enregistrez votre API dans Auth0
- Si vous voulez que votre API reçoive des Jetons d’actualisation afin de pouvoir obtenir de nouveaux jetons lorsque les précédents expirent, activez Allow Offline Access.
Étapes
- Créer le vérificateur de code:
Générez un
code_verifierqui sera envoyé à Auth0 pour demander des jetons. - Créer le défi de code:
Générez un
code_challengeà partir ducode_verifier, qui sera envoyé à Auth0 pour demander unauthorization_code. - Autoriser l’utilisateur:
Demandez l’autorisation de l’utilisateur, puis redirigez-le vers votre application avec un
authorization_code. - Demander des jetons:
Échangez votre
authorization_codeet votrecode_verifiercontre des jetons. - Appeler l’API: Utilisez le Jeton d’accès récupéré pour appeler votre API.
- Actualiser les jetons: Utilisez un Jeton d’actualisation pour demander de nouveaux jetons lorsque les jetons existants expirent.
Créer un vérificateur de code
code_verifier, c’est-à-dire une clé générée aléatoirement de manière cryptographiquement sûre et encodée en Base64, qui sera ensuite envoyée à Auth0 pour demander des jetons.
Exemple JavaScript
Exemple en Java
Exemple Android
Exemple en Swift 5
Exemple en Objective-C
Créer le défi de code
code_challenge à partir du code_verifier, qui sera envoyé à Auth0 afin de demander un authorization_code.
Exemple JavaScript
Exemple en Java
Exemple en Swift 5
Exemple en Objective-C
code_verifier et le code_challenge, vous devez obtenir l’autorisation de l’utilisateur. Il s’agit techniquement du 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 la présence de sessions d’authentification unique (SSO) actives;
- Obtenir le consentement de l’utilisateur pour le niveau d’accès demandé, à moins que ce consentement n’ait déjà été accordé.
code_challenge généré à l’étape précédente ainsi que la méthode utilisée pour générer le code_challenge.
Paramètres
- devez inclure un paramètre
- pouvez inclure des scopes supplémentaires pris en charge par l’API cible
Par exemple, votre extrait HTML pour votre URL d’autorisation lors de l’appel à une API pourrait ressembler à ceci :
Réponse
HTTP 302. Le code d’autorisation se trouve à la fin de l’URL :
Demander des jetons
code) à l’étape précédente, vous devrez envoyer une requête POST à l’URL du jeton en y joignant le code_verifier.
Exemple de requête POST à l’URL du jeton
Paramètres
Réponse
access_token, refresh_token, id_token et token_type :
refresh_token n’est présent dans la réponse que si vous avez inclus le scope offline_access et activé Allow Offline Access pour votre API dans l’Auth0 Dashboard.
Appeler l’API
Jetons d’actualisation
- configuré votre API pour autoriser l’accès hors ligne
- inclus le scope
offline_accesslorsque vous avez envoyé la demande d’authentification par l’intermédiaire du point de terminaison d’autorisation.
POST au point de terminaison /oauth/token de l’Authentication API, en utilisant grant_type=refresh_token.
Exemple de requête POST vers l’URL du jeton
Paramètres
Réponse
HTTP 200 avec un payload contenant un nouvel access_token, sa durée de vie en secondes (expires_in), les valeurs de scope accordées et token_type. Si le scope du jeton initial comprenait openid, la réponse inclura également un nouvel id_token :