Authentifier un utilisateur et faire des demandes standard
-
Lancer le flux d’authentification en envoyant l’utilisateur à l’URL d’autorisation :
Notez que dans cet exemple :
-
Le paramètre
response_typecomprend une valeur :code: parce que nous utilisons le flux d’application Web standard, notre demande initiale concerne un code d’autorisation; lorsque nous demandons nos jetons à l’aide de ce code, nous recevons le jeton d’ID dont nous avons besoin pour l’authentification.
-
Le paramètre
scopecomprend trois valeurs; les permissions OIDC demandées :openid: pour indiquer que l’application a l’intention d’utiliser OIDC pour vérifier l’identité de l’utilisateur.profile: pour obtenir lename, lenicknameet lapicture.email: pour accéder àemailetemail_verified.
-
Le paramètre
- Une fois que l’utilisateur a consenti (si nécessaire) et qu’Auth0 a redirigé vers votre application, demandez des jetons.
- Extrayez le jeton d’ID de la réponse et décodez-le. Vous devriez voir les demandes suivantes : Votre application peut désormais récupérer les attributs utilisateur et les utiliser pour personnaliser votre interface utilisateur.
Demander un accès API personnalisé
-
Lancer le flux d’autorisation en envoyant l’utilisateur à l’URL d’autorisation :
Notez que dans cet exemple :
-
Le paramètre
response_typecomprend toujours une valeur :code: parce que nous utilisons le flux d’application Web standard, notre demande initiale concerne un code d’autorisation; lorsque nous demandons nos jetons à l’aide de ce code, nous recevons le jeton d’accès que nous pouvons utiliser pour appeler notre API.
-
Le paramètre
scopecomprend une valeur; les permissions API demandées :read:appointments: pour nous permettre de lire les rendez-vous de l’utilisateur depuis l’API.
-
Le paramètre
audienceest nouveau et comprend une valeur :- L’identifiant unique de l’API à partir duquel nous souhaitons lire les rendez-vous de l’utilisateur.
-
Le paramètre
- Comme dans l’exemple précédent, une fois que l’utilisateur a consenti (si nécessaire) et qu’Auth0 a redirigé vers votre application, demandez des jetons.
- Extrayez le jeton d’accès de la réponse et appelez l’API en utilisant le jeton d’accès comme informations d’identification.
Authentifier un utilisateur et faire des demandes standard et un personnalisé à une API
-
Un jeton d’ID qui contient :
- Nom d’utilisateur
- Surnom
- Photo du profil
- Informations de courriel
- Jeton d’accès contenant la permission appropriée pour lire les rendez-vous à partir de l’API. Notez que la demande d’un jeton d’accès ne dépend pas de la demande d’un jeton d’ID.
-
Lancer le flux d’authentification en envoyant l’utilisateur à l’URL d’autorisation :
Notez que dans cet exemple :
-
Le paramètre
response_typecomprend toujours une valeur :code: parce que nous utilisons le flux d’application Web standard, notre demande initiale concerne un code d’autorisation; lorsque nous demandons nos jetons à l’aide de ce code, nous recevons le jeton d’ID dont nous avons besoin pour l’authentification et le jeton d’accès que nous pouvons utiliser pour appeler notre API.
-
Le paramètre
scopeest utilisé à la fois pour les permissions OIDC et les permissions des API, il inclut donc maintenant quatre valeurs :openid: pour indiquer que l’application a l’intention d’utiliser OIDC pour vérifier l’identité de l’utilisateur.profile: pour obtenir lename, lenicknameet lapicture.email: pour accéder àemailetemail_verified.read:appointments: pour nous permettre de lire les rendez-vous de l’utilisateur depuis l’API.
-
Le paramètre
audiencecomprend une valeur :- L’identifiant unique de l’API à partir de laquelle nous souhaitons lire les rendez-vous de l’utilisateur
-
Le paramètre
- Comme dans les exemples précédents, une fois que l’utilisateur a consenti (si nécessaire) et qu’Auth0 a redirigé vers votre application, demandez des jetons.
- Extrayez le jeton d’ID de la réponse, décodez-le, récupérez les attributs utilisateur et utilisez-les pour personnaliser votre interface utilisateur.
- Extrayez le jeton d’accès de la réponse et appelez l’API en utilisant le jeton d’accès comme informations d’identification.
Ajouter des demandes personnalisées à un jeton
/userinfo (bien que l’Action ne s’exécute que pendant le processus d’authentification).
Auth0 accepte les demandes avec ou sans espace de noms, mais avec certaines restrictions (voir Restrictions générales). Pour éviter les collisions de noms, il est recommandé d’utiliser des demandes avec espace de noms. En cas de collision, la transaction n’échouera pas, mais votre demande personnalisée ne sera pas ajoutée à vos jetons.
- À un moment donné, l’utilisateur a sélectionné une méthode
preferred_contactd’emailet unefavorite_color``redet que nous l’avons enregistrée dans le cadre desuser_metadatade l’utilisateur. - Nous avons utilisé la Management API ou le Dashboard pour définir des informations spécifiques à l’application pour cet utilisateur.
- La demande
subcontient la valeur de la propriétéuser_id. - Les propriétés
favorite_coloretuser_metadatane sont pas présentes car Connect (OIDC) ne définit pas de demandes standard qui représententfavorite_colorouuser_metadata.
- Naviguez vers Auth0 Dashboard > Actions > Bibliothèque et sélectionnez Créer personnalisé.
-
Saisissez un Nom descriptif pour votre Action (par exemple,
Ajouter des métadonnées utilisateur aux jetons), sélectionnez le déclencheurLogin / Post Login, car vous allez ajouter l’action au flux de connexion, puis sélectionnez Créer. -
Localisez l’Éditeur de code d’Actions, copiez-y le code JavaScript suivant et sélectionnez Enregistrer le brouillon pour enregistrer vos modifications :
- Dans la barre latérale de l’Éditeur de code d’Actions, sélectionnez Tester (l’icône de lecture), puis sélectionnez Exécuter pour tester votre code.
- Lorsque vous êtes prêt à lancer l’action, sélectionnez Déployer.
favorite_color et preferred_contact dans le jeton d’ID :
api.idToken.setCustomClaims. Pour ajouter ces demandes à un jeton d’accès, utilisez la méthode api.accessToken.setCustomClaim.
Pour en savoir plus sur l’objet événement du déclencheur, lisez Actions Déclencheurs : post-login - Objet événement. Pour en savoir plus sur les jetons, lisez Jetons.