Gérer l’authentification (Token, OAuth)
Fonctions :
-
Authentification avec Token
Un Token est une clé générée par l'API ou un système d'authentification tiers qui permet de prouver l'identité de l'utilisateur. Les tokens sont souvent utilisés pour l’authentification stateless, c'est-à-dire sans maintenir de session côté serveur.
Exemple de code :
import requests url = "https://api.exemple.com/data" headers = { "Authorization": "Bearer VOTRE_TOKEN" # Authentification avec Token } response = requests.get(url, headers=headers) if response.status_code == 200: print("Données récupérées :", response.json()) else: print("Erreur :", response.status_code)
Explication du code :
import requests
importe la bibliothèque requests, qui permet d’envoyer des requêtes HTTP facilement avec Python.Définir l’URL de l’API
La variableurl = "https://api.exemple.com/data"
contient l’adresse de l’API à laquelle on souhaite envoyer une requête HTTP GET.Ajouter un en-tête pour l’authentification
Le dictionnaireheaders
contient les informations nécessaires à l’authentification.{"Authorization": "Bearer VOTRE_TOKEN"}
indique que l’on utilise une authentification par token de type Bearer. Il faut remplacerVOTRE_TOKEN
par votre propre jeton d’accès.Envoyer une requête GET à l’API
La ligneresponse = requests.get(url, headers=headers)
envoie une requête HTTP GET à l’URL définie, avec les en-têtes précisés. La réponse de l’API est stockée dans la variableresponse
.Vérifier si la requête a réussi
La conditionif response.status_code == 200:
permet de vérifier si la requête a retourné un code HTTP 200, ce qui signifie que l’appel a réussi.Afficher les données récupérées
Si la requête est un succès,print("Données récupérées :", response.json())
affiche les données reçues en réponse, converties automatiquement en dictionnaire Python grâce àresponse.json()
.Afficher un message d’erreur en cas d’échec
Si la requête échoue (code HTTP différent de 200),print("Erreur :", response.status_code)
permet d’afficher un message d’erreur contenant le code de statut HTTP retourné par l’API. -
Authentification OAuth avec requests_oauthlib
La bibliothèque requests_oauthlib facilite l'intégration d'OAuth avec la bibliothèque requests. Elle gère automatiquement les flux d'authentification et de rafraîchissement des tokens.
Importation :
from requests_oauthlib import OAuth2Session
Exemple de code :
from requests_oauthlib import OAuth2Session # Informations OAuth client_id = "VOTRE_CLIENT_ID" client_secret = "VOTRE_CLIENT_SECRET" redirect_uri = "VOTRE_REDIRECT_URI" authorization_base_url = "https://auth.exemple.com/authorize" token_url = "https://auth.exemple.com/token" # Créer une session OAuth oauth = OAuth2Session(client_id, redirect_uri=redirect_uri) # Obtenir l'URL d'autorisation authorization_url, state = oauth.authorization_url(authorization_base_url) print(f"Allez à cette URL pour vous connecter : {authorization_url}") # Après l'authentification de l'utilisateur, récupérer le code redirect_response = input("Collez l'URL de redirection ici : ") # Échanger le code d'autorisation contre un token d'accès oauth.fetch_token(token_url, authorization_response=redirect_response, client_secret=client_secret) # Utiliser le token pour faire une requête response = oauth.get("https://api.exemple.com/protected_resource") print("Données récupérées :", response.json())
Explication du code :
OAuth2Session
gère l'authentification et la récupération des tokens.fetch_token()
récupère automatiquement le token d'accès après avoir échangé le code d'autorisation.