Le protocole OAuth 2.0 Authorization Code Grant est une méthode d'authentification courante utilisée par de nombreux services, dont GitHub, pour permettre aux applications tierces d'accéder aux données utilisateur sans partager les mots de passe. L'implémenter et le déboguer dans Apidog peut être une compétence précieuse.
OAuth 2.0
OAuth 2.0 est un protocole d'autorisation largement utilisé permettant l'accès de tiers aux ressources protégées sans nécessiter d'informations d'identification utilisateur. Il implique quatre rôles clés, qui sont le propriétaire de la ressource, le client, le serveur d'autorisation et le serveur de ressources.

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 :
- Authorization Code Grant : 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 ainsi que ses informations d'identification contre un jeton d'accès.
- Authorization Code Grant 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).
- Resource Owner Password Credentials Grant : 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.
- Client Credentials Grant : 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.
- Implicit Grant : 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 configurer Github OAuth 2.0 (Client ID et Client Secret)
Étape 1 : Créer l'application et obtenir le client ID et le client secret
Pour obtenir le client ID et la clé client, nous devons d'abord créer une application. Cliquez sur ce lien pour en créer un dans Github : https://github.com/settings/applications/new, puis remplissez votre "Homepage URL" ici Nom de domaine, s'il s'agit d'un débogage local, vous pouvez remplir votre service local, tel que http://127.0.0.1:8000.
Remplissez votre adresse de rappel dans "Authorization callback URL", qui peut être votre nom de domaine ou votre adresse de rappel locale, telle que http://127.0.0.1:8000/callback.
Après avoir rempli la configuration pertinente, cliquez sur "Register application" pour la créer.

Une fois l'application créée, le client ID et le client secret sont générés. La clé client doit être générée séparément. Cliquez sur "Generate a new client secret" pour générer une clé.

Étape 2 : Obtenir le jeton d'accès
Lorsque la première étape ci-dessus est prête, 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éez un nouveau projet HTTP dans Apidog et ouvrez-le, puis créez une nouvelle requête dans le projet et sélectionnez l'option [Modify Document -> Auth -> OAuth 2.0 ->.

2. Configurez le client ID, la clé client et l'adresse de redirection
Le mode d'autorisation par défaut sélectionné sur la page OAuth 2.0 dans Apifdog est Authorization Code (mode code d'autorisation).
Étant donné que Github OAuth 2.0 utilise également Authorization Code (mode code d'autorisation), vous n'avez pas besoin de basculer ici.

Ensuite, recherchez le Client ID, le Client Secret et l'URL de rappel en bas de la page. Le client ID (Client ID), le client secret (Client Secret) et l'adresse de rappel configurée (Callback URL) seront obtenus à partir du service OAuth 2.0 de Github.
Il suffit de le remplir. Les paramètres spécifiques sont les configurations de "Step 1" ci-dessus.

3. Configurez l'adresse de requête du code d'autorisation
Selon la documentation officielle de Github, lors de l'exécution de l'authentification OAuth 2.0, l'adresse de requête (Auth URL) du code d'autorisation est :
https://github.com/login/oauth/authorize
Il suffit de remplir l'adresse de requête de ce code d'autorisation dans l'URL d'authentification. Nous pouvons comprendre cette adresse comme la page d'autorisation de connexion.
Cette page s'ouvrira lorsque l'état de connexion sera vérifié pour la première fois (il s'agit d'une fenêtre sur le client), puis il vous sera demandé de remplir l'adresse de requête. nom d'utilisateur et mot de passe.

Généralement, lors de la construction manuelle de la page d'autorisation de connexion, certains paramètres doivent être transportés après l'adresse d'autorisation.
Cependant, dans Apidog, les paramètres après l'URL n'ont généralement pas besoin d'être transportés, seul le chemin devant le point d'interrogation? suffit, car les autres sont requis. Les paramètres ont été configurés séparément dans d'autres options.
Bien sûr, si vous souhaitez transporter des paramètres de requête, vous pouvez également les ajouter. Cliquez sur l'icône derrière la zone de saisie pour ajouter :

Nous pouvons également développer l'option "Plus" et remplir les valeurs des paramètres qui doivent être remplies dans les options correspondantes. Par exemple, dans "Scope", vous pouvez remplir les autorisations requises, telles que read:user, user:email, etc.
Vous pouvez avoir plus d'autorisations pour d'autres Vous pouvez consulter le module d'autorisations de la documentation d'aide de Github pour l'afficher. Remplissez l'état dans l'option "État". L'état est de prévenir la falsification de requête intersites.

4. Configurez l'adresse de requête du jeton d'accès
Selon la documentation officielle de Github, pour demander un jeton d'accès, l'URL demandée est :
https://github.com/login/oauth/access_token
Il suffit de remplir l'adresse ci-dessus dans le champ de saisie URL du jeton d'accès de la page OAuth 2.0 d'Apidog.

5. Obtenez le jeton d'accès pour le service Github OAuth 2.0
Une fois les éléments de configuration ci-dessus définis, vous pouvez cliquer sur le bouton "Get Token" pour obtenir le jeton d'accès.
Après avoir cliqué, s'il s'agit de votre première connexion, une fenêtre s'affichera pour que vous puissiez vous authentifier. Il suffit de remplir le nom d'utilisateur et le mot de passe de votre compte Github.

Après avoir rempli le nom d'utilisateur et le mot de passe, il vous sera demandé de confirmer l'autorisation ou d'effectuer une vérification en deux étapes. Après la vérification, cliquez sur Confirmer.
Une fois l'autorisation terminée, le jeton d'accès sera automatiquement obtenu et affiché sur la page. Dans le même temps, d'autres informations renvoyées par Github seront également analysées, comme le montre la figure ci-dessous. "Expiré" s'affiche ici car Github ne nous a pas renvoyé l'attribut expires_in, nous ne pouvons donc pas faire de jugement. Cependant, ce Token est utilisable. Commençons une requête ci-dessous.

Étape 3 : Accéder aux ressources ouvertes basées sur le jeton
Une fois que vous avez le jeton d'accès (Token), vous pouvez utiliser ce jeton d'accès pour appeler les ressources ouvertes de Github. Vous pouvez afficher les ressources ouvertes spécifiques dans l'API Github.
Par exemple, l'API suivante obtient des informations utilisateur. Si votre interface ne renvoie pas, vous devez vérifier si vous avez les autorisations. Comme mentionné à la section 3 de "Step 2", il suffit de le configurer dans Scope.

Lors de l'envoi d'une requête, Apidog ajoutera automatiquement le Token à l'autorisation de l'en-tête de la requête, l'ajoutera au Bearer et l'enverra. Si vous souhaitez transporter le Token dans l'URL, vous pouvez également modifier "Add Location" du Token dans les éléments de configuration de la page et sélectionner "Query Params".

Résumé
OAuth 2.0 est un framework d'autorisation qui permet aux applications tierces d'obtenir des jetons d'accès sans que l'utilisateur ait besoin de fournir un nom d'utilisateur et un mot de passe. Le processus d'autorisation utilisé par GitHub est le "processus d'autorisation du code d'autorisation", et son processus d'autorisation peut être débogué et configuré dans Apidog.