Python - HTTP-Authentifizierung

Bei der Authentifizierung wird festgestellt, ob die Anforderung von einem gültigen Benutzer stammt, der über die erforderlichen Berechtigungen zur Verwendung des Systems verfügt. In der Welt der Computernetzwerke ist dies eine sehr wichtige Anforderung, da viele Systeme ständig miteinander interagieren und geeignete Mechanismen erforderlich sind, um sicherzustellen, dass nur gültige Interaktionen zwischen diesen Programmen stattfinden.

Die Namen der Python-Module requestsverfügt über eine integrierte Funktion zum Aufrufen verschiedener APIs, die von den bereitgestellten Webanwendungen bereitgestellt werden, zusammen mit den Benutzeranmeldeinformationen. Diese Anmeldeinformationen müssen in das aufrufende Programm eingebettet sein. Wenn die APIs dies erfolgreich überprüfen, erfolgt eine gültige Anmeldung.

Anfragen installieren

Wir installieren das erforderliche Python-Modul mit dem Namen request zum Ausführen des Authentifizierungsprogramms.

pip install requests

Authentifizierung bei Github

Unten sehen wir einen einfachen Authentifizierungsmechanismus, der nur den Benutzernamen und das Passwort umfasst. Eine erfolgreiche Antwort zeigt eine gültige Anmeldung an.

import requests 
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

 
      

Authentifizierung bei Twitter

Wir können auch ein Programm ausführen, um die API von Twitter zu verwenden und eine erfolgreiche Anmeldung mit dem folgenden Code durchzuführen. Wir verwenden die im Anforderungsmodul verfügbare OAuth1-Methode, um die für die Twitter-API erforderlichen Parameter zu verarbeiten. Wie wir sehen können, kann das Anforderungsmodul komplexere Authentifizierungsmechanismen mit Schlüsseln und Token verarbeiten, anstatt nur den Mechanismus für Benutzername und Kennwort.

import requests
from requests_oauthlib import OAuth1
url = 'https://api.twitter.com/1.1/account/verify_credentials.json'
auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET',
              'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET')
requests.get(url, auth=auth)

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

{
  "errors": [
    {
      "code": 215,
      "message": "Bad Authentication data."
    }
  ]
}

Wenn Sie jedoch die richtigen Werte für OAuth1-Parameter verwenden, erhalten Sie eine erfolgreiche Antwort.