29 Stimmen

Twitter API - Abmeldung

Ich verwende OAuth in meiner Web-App, und Benutzer können sich mit Twitter anmelden.

Ich möchte die Schaltfläche "Twitter-Konto wechseln" hinzufügen, die die Sitzung tatsächlich löscht und dann die Authorize_url öffnet.

Da das Löschen der Sitzung in meiner Webanwendung keine Abmeldung von Twitter bewirkt, wird die authorize_url automatisch den aktuellen twitter.com-Benutzer authentifizieren. Das heißt, ich kann mich nicht abmelden, es sei denn, ich schicke den Benutzer zu twitter.com.

Ist dies mit der API möglich? Wie lässt sich dies am besten umsetzen?

35voto

Ryan McGeary Punkte 228632

Die Sitzung mit Twitter wird durch ein Cookie definiert, das sich im Besitz von Twitter befindet - etwas, worüber Sie keine Kontrolle haben. Sie können sie nicht in ihrem Namen bei Twitter abmelden.

Wenn Sie möchten, dass jemand Ihre "Twitter-Konto wechseln"-Funktionalität nutzen kann, müssen Sie ihn wieder an den OAuth-Handshake weiterleiten, aber verwenden Sie die /oauth/authorize Pfad anstelle des /oauth/authenticate Pfad. Dies ermöglicht es dem Benutzer, seine Benutzerdaten bei Twitter während des Handshakes zu wechseln, anstatt sich einfach mit seiner bestehenden Twitter-Sitzung neu zu authentifizieren.

Alternativ könnten Sie einen separaten Begriff von Benutzern in Ihrer eigenen App haben, wobei Sie Ihr eigenes Benutzermodell haben, dem viele Twitter-Konten zugeordnet sind. Auf diese Weise könnten Sie Ihren Nutzern erlauben, Konten problemloser zu wechseln. Sie müssten Ihre App im Voraus für jedes ihrer Twitter-Konten autorisieren, aber Sie hätten danach alle ihre Oauth-Schlüssel für jedes ihrer Twitter-Konten.

33voto

abraham Punkte 43978

Sie können oauth/authenticate verwenden und Folgendes hinzufügen force_login=true wie angegeben in GET oauth/authenticate . Daraufhin wird dem Benutzer ein Anmeldeformular angezeigt.

1voto

kezoo Punkte 99

Entschuldigung für den Kommentar als Antwort. abraham Lösung funktioniert gut, aber für das Löschen von Benutzernamen Feld müssen Sie auch hinzufügen screen_name= auf GET-Anfrage.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X