2009-12-10 8 views
29

Ich frage mich, wie Twitter OAuth über ein Popup zu tun, d. H. Laden Sie die Oauth-Seite in einem Popup und den Rückruf schließen Sie das untergeordnete Fenster und laden Sie das übergeordnete Fenster neu.Twitter OAuth über ein Popup

Edit: OK iframes sind schlecht, aber wie würden Sie das obige erreichen, merke ich posterous.com tut dies - ich freue mich auf den gleichen Fluss wie FB connect erreichen.

Antwort

61

die gleiche Sache für Yahoo heute tun ...

  1. öffnen ein Popup
  2. Senden Benutzer für die Authentifizierung twittern
  3. Twitter sendet Benutzer zurück zu mysite.com/authcompleted .php mit Authentifizierungsparametern in der Abfragezeichenfolge. Noch im Popup hier.
  4. Das Popup (mysite.com/authcompleted.html) liest die Query-String und sendet die Daten an den Opener-Fenster über Javascript

    window.opener.setTwitterAuthData (yourData)

  5. Innen setTwitterAuthData, die Stellen Sie in Ihrem Hauptfenster die entsprechenden Formularfelder ein und senden Sie die Daten an Ihren Server.

+0

Wie können Sie immer noch in das Popup, Punkt 3., wenn der Rückruf mysite.com/authcompleted ist. PHP? – Owen

+1

@mark Sie zeigen das Popup auf Yahoo zu beginnen, dann Yahoo Weiterleitungen, immer noch in das Popup, um authcompleted.php – morgancodes

+0

danke, macht Sinn – Owen

5

Sie sollten dies nicht tun. Wenn Sie es in einem IFrame laden, wird die URL vom Benutzer ausgeblendet, was es für sie schwierig macht zu bestätigen, dass sie ihr Passwort auf twitter.com und nicht auf einer Drittanbieter-Website (d. H. Phishing-Seite) eingeben.

+2

Ich stimme im Prinzip zu, aber hat die Auth-Seite nur erlauben || Verweigern Sie diese Anwendungsschaltflächen - Sie werden nicht nach Ihrem Passwort gefragt. Ich kann also nicht erkennen, warum es aus Sicherheitssicht ein Problem sein sollte, und gleichzeitig den UX-Fluss unterstützen. – MatthewFord

+4

Wenn Sie nicht eingeloggt sind, werden Sie nach Ihrem Passwort gefragt. –

+3

Es gibt Iframe sprengt JS auf der nicht eingeloggten Seite, wo es fragt Sie nach Ihrem Passwort (Zeile 37) – MatthewFord