So authentifizieren Sie Benutzer mit Twitter OAuth 2.0

In diesem Lernprogramm erfahren Sie, wie Sie mit Twitter API 1.1 und OAuth 2.0 die Benutzer Ihrer Anwendung authentifizieren und einen Test-Tweet veröffentlichen.

Warum brauchen wir ein Authentifizierungs-Framework??

Um Dienste zu erstellen, die für die Benutzerkonten agieren und die Entwicklung wirklich sicher und einfach machen, benötigen wir drei Dinge:

  • Twitter-Anwendung
  • REST-API
  • Zugriff auf das Benutzerkonto

Um die Teile zu einem Arbeitsmechanismus zusammenzusetzen, benötigen wir ein Authentifizierungs-Framework. Als Twitter-Standard identifiziert die REST-API Twitter-Anwendungen und Benutzer, die OAuth verwenden.

Was ist OAuth??

Laut oauth.net ist OAuth:

Ein offenes Protokoll, das eine sichere und standardisierte sichere Autorisierung von Web-, Mobil- und Desktopanwendungen ermöglicht.

OAuth ist heute das am häufigsten verwendete Autorisierungsframework und wird in den meisten gängigen Webanwendungen und -diensten wie GitHub, Google, Facebook und natürlich Twitter verwendet.

Mit diesem Framework können Benutzer Ihnen die Erlaubnis erteilen, in ihrem Namen zu handeln, ohne das Kontokennwort zu teilen. Nachdem der Benutzer die Berechtigung erteilt hat, gibt OAuth ein Token zurück. Dieses Token selbst gewährt den Zugriff, um Anforderungen für den Benutzer zu stellen.

Token von Twitter haben keine Ablaufzeit, können jedoch ungültig werden, nachdem der Benutzer Ihren Antrag abgelehnt hat. Die Twitter-Crew kann Ihre Bewerbung auch aussetzen, wenn Sie die Grenzwerte überschreiten oder andere Aktionen ausführen, die gegen die API-Bedingungen verstoßen. Sie können diese Bedingungen überprüfen, um mehr über bestimmte Verstöße zu erfahren.

Erstellen Sie Ihre Anwendung

Als ersten Schritt müssen wir eine neue Twitter-Anwendung einrichten. Erstellen wir eine neue Anwendung auf der Anwendungsverwaltungsseite.

Nachdem Sie sich angemeldet haben, müssen Sie auf klicken Neue App erstellen und füllen Sie das Formular mit Ihren Anwendungsdetails aus: Name, Beschreibung, Website und Rückruf-URL.

Was ist die Rückruf-URL? Wenn Benutzer unserer Anwendung zur Verwendung ihres Kontos zustimmen, übermittelt der Browser sie mit dem OAuth-Überprüfer in GET an diese URL. Und wir werden diesen Verifizierer verwenden, um das Benutzerzugriffstoken zu erhalten.

Beachten: Vergessen Sie nicht, die Website und die Callback-URL durch Ihre öffentliche Domain zu ersetzen, wenn Sie Ihre Anwendung für echte Benutzer freigeben.

Nachdem Sie das Formular ausgefüllt haben, können Sie die Entwicklervereinbarung unterzeichnen und auf klicken einreichen Schaltfläche zum Erstellen Ihrer Anwendung.

Herzliche Glückwünsche! Jetzt haben Sie Zugriff auf eine Seite, auf der Sie die Details und die Einstellungen Ihrer neuen Anwendung anzeigen, Berechtigungen ändern sowie Schlüssel und Zugriffstoken verwalten können. Navigieren Sie zu Schlüssel und Zugriffstoken Tab und finden Sie die Consumer Key und Consumer SecretWir werden sie in Kürze verwenden.

Starten Sie die Codierung

Eine Bibliothek auswählen

Bevor Sie mit dem Code beginnen können, müssen Sie eine Bibliothek auswählen, um mit Twitter API und Oauth 2.0 zu arbeiten. Einen Überblick über die vorhandenen Bibliotheken erhalten Sie auf der Twitter-Entwicklerseite. In diesem Tutorial werde ich TwitterOAuth als das beliebteste und benutzerfreundlichste verwenden. Wir können es mit Composer von der Kommandozeile aus installieren:

Komponist erfordert Abraham / Twitteroauth

Die Config-Datei

Erstellen wir eine neue Datei mit dem Namen config.php um alle statischen Daten zu speichern. Geben Sie in Ihrer Anwendung die folgenden Details an.

 'EPKXCv3tUsq9DoxwZy616Cy1o', 'consumer_secret' => 'UXnAeXkCZFIOnLVQCS4LFR7GsCTrOiU77OGSFL3dUoYZiTxU8x', // 'url_login' => 'http: //localhost/twitter_login.php', 'url_callback' => 'http: //localhost/twitter_callback.php',] ;

Starten Sie das Anmeldeskript

Erstellen Sie nun eine neue Datei mit dem Namen twitter_login.php und fügen Sie Composer autoload, die Bibliothek TwitterOAuth ein, starten Sie die Sitzung und importieren Sie die Einstellungen unserer Anwendung aus der Konfigurationsdatei.

Auth anfordern

In diesem Teil müssen wir den Benutzer auffordern, unsere Anwendung zu genehmigen. Um dieses Ziel zu erreichen, erstellen wir ein Objekt der TwitterOAuth-Klasse, fordern ein Token der Anwendung von der Twitter-API an, rufen die URL der Autorisierungsseite mit diesem Token ab und leiten den Benutzer auf diese Seite um.

// TwitterOAuth-Objekt erstellen $ twitteroauth = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret']); // Anforderungs-Token der Anwendung $ request_token = $ twitteroauth-> oauth ('oauth / request_token', ['oauth_callback' => $ config ['url_callback']]); // Ausnahme auslösen, wenn etwas schief gelaufen ist if ($ twitteroauth-> getLastHttpCode ()! = 200) throw new \ Exception ('Bei der Ausführung dieser Anforderung ist ein Problem aufgetreten');  // Token der Anwendung in der Sitzung $ _SESSION ['oauth_token'] speichern = $ request_token ['oauth_token']; $ _SESSION ['oauth_token_secret'] = $ request_token ['oauth_token_secret']; // generiere die URL, um eine Anfrage zur Autorisierung unserer Anwendung zu machen $ url = $ twitteroauth-> url ('oauth / authorize', ['oauth_token' => $ request_token ['oauth_token']]); // und Header umleiten ('Location:'. $ url);

Notieren Sie sich, dass wir Anwendungstoken für die Sitzung speichern, da wir sie im nächsten Schritt benötigen.

Jetzt können Sie dieses Skript im Browser ausführen. Wenn alles gut läuft, werden Sie auf die Twitter-API-Seite mit folgendem Link weitergeleitet:

Sie werden zur Callback-URL weitergeleitet, indem Sie auf klicken Ermächtigen App Taste. Aber nicht so schnell zuerst müssen wir ein Callback-Skript erstellen.

Holen Sie sich das Benutzer-Token

Im nächsten Schritt erstellen Sie ein Callback-Skript. Erstellen wir eine neue Datei mit dem Namen twitter_callback.php und fügen Sie die TwitterOAuth-Bibliothek, die Konfigurationsdatei und die Sitzung wie im vorherigen Teil hinzu.

Dann werden wir prüfen, ob wir einen Parameter für die Überprüfung der Authentifizierung von der Twitter-API erhalten haben. Wenn etwas fehlt, leiten wir den Benutzer um, um sich erneut anzumelden.

$ oauth_verifier = filter_input (INPUT_GET, 'oauth_verifier'); if (leer ($ oauth_verifier) ​​|| leer ($ _ SESSION ['oauth_token']) || leer ($ _ SESSION ['oauth_token_secret'])) // etwas fehlt, gehen Sie zurück und melden Sie sich erneut an ('Location:' config ['url_login']); 

Im nächsten Schritt stellen Sie mit dem Anwendungstoken eine Verbindung zur Twitter-API her und fordern mit dem OAuth-Verifizierer ein Benutzertoken an:

// Verbindung mit dem Anwendungstoken herstellen $ connection = new TwitterOAuth ($ config ['consumer_key']), $ config ['consumer_secret'], $ _SESSION ['oauth_token'], $ _SESSION ['oauth_token_secret']); // Benutzer-Token anfordern $ token = $ connection-> oauth ('oauth / access_token', ['oauth_verifier' => $ oauth_verifier]);

Und jetzt haben Sie das Benutzer-Token im gespeichert $ token Variable.

So verwenden Sie dieses Token

Wir können dieses Token verwenden, um im Namen des Benutzerkontos zu handeln. Wir können es in der Sitzung oder in der Datenbank speichern, um das Benutzerkonto beim nächsten Mal ohne Erlaubnis zu verwalten. Um eine Verbindung mit der Twitter-API mit dem Benutzertoken herzustellen, müssen Sie Folgendes tun:

$ twitter = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret'], $ token ['oauth_token'], $ token ['oauth_token_secret']);

Erstellen Sie einen Test-Tweet

Um einen neuen Tweet aus dem Benutzerkonto zu erstellen, müssen Sie nur ein kleines Stück Code hinzufügen:

$ status = $ twitter-> post ("statuses / update", ["status" => "Danke, @nedavayruby, jetzt weiß ich, wie ich Benutzer bei Twitter aufgrund dieses Tutorials authentifizieren kann. https://goo.gl/N2Znbb" ]); echo ('Neuer Status mit # erstellt'. $ status-> id. PHP_EOL);

Informationen zum Status erhalten Sie auch aus der Antwort der in der API gespeicherten API $ status Variable.

Zum Schluss können wir unser Skript testen. 

Fazit

Wie Sie sehen, ist das Erstellen einer Twitter-Anwendung nicht so schwer. Jetzt stehen Ihnen alle API-Funktionen zur Verfügung: Sie können neue Tweets erstellen, Medien hochladen, Freundschaften verwalten und so weiter.

Denken Sie daran, dass Sie jetzt OAuth-Token sammeln können und dass Sie die Macht haben, im Namen Ihrer Benutzer zu handeln. Mit großer Kraft geht jedoch auch eine große Verantwortung einher. Deshalb müssen Sie mit dieser Situation elegant umgehen und eine hochwertige Benutzererfahrung bieten.

Wenn Sie Fragen oder Feedback haben, können Sie diese gerne im Kommentarbereich posten. Ich freue mich darauf und werde versuchen, jeden Ihrer Kommentare zu beantworten.

Weiterführende Literatur und verwandte Links

Beachten Sie, dass ich ein komplettes Projekt für dieses Tutorial auf GitHub vorbereitet habe. Sie können es mit einem Link auf der rechten Seite der Website oder mit diesem Link betrachten.

  • Twitter-Apps
  • Twitter-REST-APIs
  • Twitter OAuth-Übersicht
  • TwitterOAuth PHP-Bibliothek
  • Andere Twitter-Bibliotheken
  • OAuth-Startseite
  • Der Originalartikel zur Authentifizierung von Benutzern mit Twitter OAuth.