Le processus d'autorisation OAuth 2.0 utilisé par Facebook est le "Code d'autorisation". Présentons comment le mettre en œuvre et comment le déboguer dans Apidog.
Qu'est-ce que OAuth 2.0 ?
OAuth 2.0 est un protocole d'autorisation largement utilisé permettant l'accès de tiers à des ressources protégées sans nécessiter d'informations d'identification utilisateur. Il implique quatre rôles clés :
- Propriétaire de la ressource : Généralement l'utilisateur qui possède les ressources protégées.
- Client : L'application tierce qui cherche à accéder aux données du propriétaire de la ressource.
- Serveur d'autorisation : Valide le propriétaire de la ressource et accorde l'autorisation au client.
- Serveur de ressources : Stocke et gère les ressources protégées, fournissant des API pour l'accès.

Flux d'autorisation courants
Le protocole OAuth 2.0 met en œuvre l'autorisation via divers flux d'autorisation. Les flux d'autorisation courants incluent :
- Code d'autorisation : Le client redirige l'utilisateur vers le serveur d'autorisation. Une fois que l'utilisateur s'est connecté et a accordé l'autorisation, le serveur d'autorisation renvoie un code d'autorisation au client. Le client échange ensuite le code d'autorisation avec ses informations d'identification contre un jeton d'accès.
- Code d'autorisation avec PKCE (Proof Key for Code Exchange) : Similaire au flux de code d'autorisation standard, mais le client améliore la sécurité en utilisant PKCE (Proof Key for Code Exchange).
- Informations d'identification du mot de passe du propriétaire de la ressource : Le propriétaire de la ressource fournit directement son nom d'utilisateur et son mot de passe au client. Le client utilise ensuite ces informations d'identification pour demander un jeton d'accès au serveur d'autorisation.
- Informations d'identification du client : Le client demande directement un jeton d'accès au serveur d'autorisation en utilisant ses propres informations d'identification. Ce flux convient aux cas où le client lui-même a besoin d'accéder aux ressources.
- Octroi implicite : Utilisé pour obtenir un jeton d'accès directement du client dans une application basée sur un navigateur. Ce flux est généralement utilisé pour les applications frontales Web.
Comment utiliser Facebook OAuth 2.0 pour se connecter à des sites Web tiers
Étape 1 : Créez l'application et obtenez l'ID client et le secret client
Tout d'abord, vous devez ouvrir un compte développeur Facebook sur https://developers.facebook.com. Après l'avoir ouvert, créez-y une application.

Une fois l'application créée avec succès, cliquez sur l'option [Paramètres de l'application->Basique]. Le numéro d'application ici est l'ID client (Client ID), et la clé d'application est le secret client (Client Secret). Nous aurons besoin de ces deux attributs plus tard. utilisé.

Étape 2 : Configurer l'adresse de rappel
Une fois l'application créée, vous devez également définir l'"adresse de rappel" dans le panneau de contrôle, cliquez sur l'option [Panneau de contrôle -> Personnaliser cette application], puis cliquez sur "Paramètres de connexion Facebook" pour accéder à l'interface de configuration.

Dans l'élément "URI de saut OAuth valide" de l'interface de configuration, renseignez l'adresse de rappel (URL de rappel), qui est l'adresse de redirection. Habituellement, il s'agit du nom de domaine de votre serveur (Facebook exige qu'il commence par https).
Si vous n'en avez pas encore, vous pouvez le remplir en premier, tant que vous vous assurez que le nom de domaine est accessible. Une fois la configuration terminée, enregistrez-la.

Le but de nous avons besoin de l'"adresse de rappel" est d'obtenir le code d'autorisation (code) dans la barre d'adresse. Généralement, après avoir rempli le nom d'utilisateur et le mot de passe sur la page de connexion OAuth 2.0, il sera redirigé vers l'"adresse de rappel" et pourra être affiché dans la barre d'adresse.
Obtenez le code d'autorisation (code). La barre d'adresse suivante est utilisée pour obtenir manuellement la valeur du code :

Une fois les informations ci-dessus configurées, nous entrons officiellement dans le processus principal de l'autorisation OAuth 2.0.
Étape 3 : Obtenir le jeton d'accès
Lorsque les première et deuxième étapes ci-dessus sont prêtes, nous pouvons demander un jeton d'accès (Token). Nous allons démontrer cette étape via Apidog.

Apidog est un très excellent outil de débogage et de gestion d'API, vous pouvez obtenir le jeton d'accès Token directement dans Apidog. Si vous n'avez pas encore installé Apidog, téléchargez-en un maintenant !
- Créer une requête HTTP Après avoir créé un projet HTTP dans Apidog, ouvrez-le, puis créez une requête dans le projet, choisissez l'option "Modifier le document -> Auth -> OAuth 2.0".

2. Configurer l'ID client, le secret client et l'URL de rappel Le mode d'autorisation par défaut sélectionné sur la page OAuth 2.0 dans Apidog est Code d'autorisation, car Facebook OAuth 2.0 utilise également le code d'autorisation. Vous n'avez donc pas besoin de changer ici.

Ensuite, recherchez l'ID client et l'URL de rappel en bas de la page et renseignez l'ID client, le secret client et l'URL de rappel configurée obtenus à partir du service Facebook OAuth 2.0. Les paramètres spécifiques sont les configurations mentionnées dans "Étape 1, Étape 2" ci-dessus.

3. Configurer l'URL de la demande de code d'autorisation Selon la documentation officielle de Facebook, lors de l'authentification OAuth 2.0, l'URL de la demande de code d'autorisation est : https://www.facebook.com/v19.0/dialog/oauth
Remplissez simplement cette URL de demande de code d'autorisation dans l'URL d'authentification. Cette URL peut être comprise comme la page d'autorisation de connexion. Elle ouvre cette page (sous la forme d'une fenêtre côté client) lors de la vérification de l'état de connexion pour la première fois, vous invitant à saisir votre nom d'utilisateur et votre mot de passe.

Habituellement, lors de la construction manuelle d'une page d'autorisation de connexion, des paramètres supplémentaires sont requis dans l'URL d'autorisation, tels que :
https://www.facebook.com/v19.0/dialog/oauth?
client_id={app-id}
&redirect_uri={redirect-uri}
&state={state-param}
Remarque : la continuation des paramètres ne doit normalement pas comporter de sauts de ligne.
Cependant, dans Apidog, des paramètres supplémentaires après l'URL de base ne sont généralement pas nécessaires. Seul le chemin avant le point d'interrogation "?" est requis car d'autres paramètres obligatoires sont configurés séparément dans d'autres options. Bien sûr, si vous souhaitez inclure des paramètres de requête, vous pouvez également les ajouter en cliquant sur l'icône à côté de cette zone de saisie :

Nous pouvons également développer les options "Plus" et renseigner les valeurs des paramètres qui doivent être renseignés, comme renseigner "Scope" avec l'autorisation requise "public_profile". L'autorisation "public_profile" dans Facebook permet à l'application de lire les champs de profil public par défaut du nœud utilisateur, et cette autorisation est automatiquement accordée à toutes les applications.
Dans l'option "État", renseignez "état", ce qui permet d'empêcher la falsification de requêtes intersites. Les plateformes tierces exigent généralement que cela soit renseigné, nous le renseignons donc généralement, sinon, il peut y avoir des erreurs lors de l'obtention du jeton d'accès.

4. Configurer l'URL de la demande de jeton d'accès Selon la documentation officielle de Facebook, pour obtenir un jeton d'accès, l'URL demandée est : https://graph.facebook.com/v19.0/oauth/access_token
Remplissez simplement cette adresse dans le champ de saisie de l'URL du jeton d'accès. De même, d'autres paramètres ont été configurés séparément dans d'autres champs de saisie, ils n'ont donc pas besoin d'être inclus dans l'URL.

5. Obtenir le jeton d'accès Une fois tous les éléments de configuration mentionnés ci-dessus définis, vous pouvez cliquer sur le bouton "Obtenir le jeton" pour obtenir le jeton d'accès.
Après avoir cliqué, s'il s'agit de votre première connexion, une fenêtre apparaîtra vous demandant votre autorisation, où vous devrez saisir le nom d'utilisateur et le mot de passe de votre compte Facebook. Si vous vous connectez à partir d'un nouvel appareil, vous devrez peut-être également votre e-mail pour une vérification supplémentaire.

Après avoir saisi votre nom d'utilisateur et votre mot de passe, vous serez invité à confirmer l'autorisation.
Cliquez sur confirmer pour terminer l'autorisation. Une fois autorisé, le jeton d'accès sera automatiquement obtenu et affiché sur la page. Dans le même temps, d'autres informations renvoyées par Facebook seront également analysées.

Étape 4 : Accéder aux ressources ouvertes basées sur le jeton Avec le jeton d'accès (Token), vous pouvez maintenant l'utiliser pour accéder aux ressources ouvertes de Facebook. Vous pouvez voir quel type de ressources ouvertes sont disponibles dans l'API Graph Facebook.
Par exemple, l'API suivante récupère l'ID et le nom de l'utilisateur. Si votre interface ne renvoie rien, vous devrez peut-être vérifier si vous disposez des autorisations nécessaires, comme mentionné dans la section 3 de "Étape 3", configurez-la simplement dans le champ d'application. https://graph.facebook.com/v12.0/me?fields=id,name

Lors de l'envoi d'une requête, Apidog joindra automatiquement le jeton à l'en-tête d'autorisation et l'enverra en l'ajoutant à "Bearer".
Si vous souhaitez transporter le jeton dans l'URL, vous pouvez également modifier "Ajouter l'emplacement" du jeton dans les options de configuration de la page et sélectionner "Query Params".
Résumé
OAuth 2.0 est un protocole d'autorisation standard ouvert qui permet aux applications tierces d'accéder en toute sécurité aux ressources protégées. Le processus d'autorisation du code d'autorisation est une méthode d'autorisation courante et est utilisé par Facebook.
Lors de la mise en œuvre, vous devez créer une application, configurer une adresse de rappel, obtenir un jeton d'accès et utiliser Apidog pour le débogage. Après avoir obtenu le jeton d'accès, vous pouvez utiliser le jeton pour appeler les ressources ouvertes de Facebook.



