Ce tutoriel vous aide à 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 ce flux fonctionne et pourquoi vous devriez l’utiliser, consultez Authorization Code Flow with Proof Key for Code Exchange (PKCE). Pour apprendre à ajouter la connexion à votre application native, mobile ou monopage, consultez Add Login Using Authorization Code Flow with PKCE.
- Auth0 Mobile SDKs et Auth0 Single-Page App SDK : la façon la plus simple de mettre en œuvre ce flux; ces outils feront l’essentiel du travail pour vous. Nos Mobile Quickstarts et Single-Page App Quickstarts 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 directement notre API.
Prérequis
-
Enregistrez l’application dans Auth0.
- Sélectionnez un type d’application Native ou Single-Page App, selon le type de votre application.
- Ajoutez une URL de rappel autorisée :
{yourCallbackUrl}. Le format de votre URL de rappel varie selon le type de votre 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 Single-Page App. - Assurez-vous que les types d’octroi de l’application comprennent Code d’autorisation. Pour savoir comment faire, consultez Mettre à jour les type d’octroi.
- Si vous voulez que votre application puisse utiliser des jetons d’actualisation, assurez-vous que les types d’octroi de l’application comprennent Jeton d’actualisation. Pour savoir comment faire, consultez Mettre à jour les type d’octroi. Pour en savoir plus sur les jetons d’actualisation, consultez Jetons d’actualisation.
-
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 code verifier:
Générez un
code_verifierqui sera envoyé à Auth0 pour demander des jetons. - Créer le code challenge:
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 actuels expirent.
Créer le code_verifier
code_verifier, soit une clé encodée en Base64 générée de façon cryptographiquement aléatoire, qui sera ensuite envoyée à Auth0 pour demander des jetons.
Exemple en Javascript
Exemple en Java
Exemple pour Android
Exemple en Swift 5
Exemple en Objective-C
Créer un code challenge
code_challenge à partir du code_verifier, qui sera envoyé à Auth0 pour demander un authorization_code.
Exemple en 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. Techniquement, c’est le début du , et cette étape peut comprendre 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 d’authentification unique (SSO) actives;
- Obtenir le consentement de l’utilisateur pour le niveau de permission 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
À titre d’exemple, l’extrait HTML de votre authorization URL lors d’une requête à une API pourrait ressembler à ceci :
Réponse
HTTP 302. Le code d’autorisation figure à la fin de l’URL :
Demander des jetons
code) extrait à l’étape précédente, vous devrez envoyer une requête POST au URL du jeton en y joignant le code_verifier.
Exemple de requête POST au URL du jeton
Paramètres
Réponse
access_token, refresh_token, id_token et token_type :
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.
Appeler l’API
Jetons d’actualisation
- configuré votre API pour autoriser l’accès hors ligne
- inclus le scope
offline_accesslorsque vous avez lancé la requête d’authentification par le point de terminaisonauthorize.
POST au point de terminaison /oauth/token dans 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 dont la charge utile contient un nouvel access_token, sa durée de validité en secondes (expires_in), les valeurs de scope accordées, ainsi que token_type. Si la portée du token initial comprenait openid, la réponse inclura également un nouvel id_token :