2009-12-10 24 views
29

Mi chiedevo come fare Twitter OAuth tramite un popup, cioè caricare la pagina Oauth in un popup e fare la richiamata chiudere la finestra secondaria e ricaricare la finestra genitore.Twitter OAuth tramite un popup

Modifica: OK gli iframe sono negativi, ma come faresti quanto sopra, noto che posterous.com fa questo: sto cercando di ottenere lo stesso flusso di connessione FB.

risposta

61

fare la stessa cosa per Yahoo oggi ...

  1. aprire un popup
  2. utente invia a Twitter per l'autenticazione
  3. Twitter invia utente alla mysite.com/authcompleted .php, con i parametri di autenticazione nella stringa di query. Ancora nel popup qui.
  4. Il popup (mysite.com/authcompleted.html) legge la stringa di query e invia i dati alla finestra di apertura tramite javascript

    window.opener.setTwitterAuthData (yourdata)

  5. All'interno setTwitterAuthData, che si trova nella finestra principale, imposta i campi modulo appropriati e invia i dati al tuo server.

+0

come si può essere ancora nel popup, punto 3., quando la richiamata viene mysite.com/authcompleted~~V~~singular~~3rd. php? – Owen

+1

@mark Punta il popup a yahoo per cominciare, poi yahoo reindirizza, sempre all'interno del popup, a authcompleted.php – morgancodes

+0

grazie, ha senso – Owen

5

Non si dovrebbe fare questo. Caricarlo in un IFrame nasconde l'URL dell'utente, rendendo difficile per loro confermare che sta inserendo la sua password su twitter.com e non su un sito di terze parti (ad esempio il phishing).

+2

Sono d'accordo in linea di principio, ma la pagina di autorizzazione non consente solo || nega questo pulsante dell'applicazione - non ti chiede la tua password. Quindi non riesco a capire perché dovrebbe essere un problema dal punto di vista della sicurezza, aiutando nel contempo il flusso UX. – MatthewFord

+4

Se non sei loggato ti chiede la tua password. –

+3

Vi è iframe busting JS nella pagina non-logged in cui ti chiede la password (riga 37) – MatthewFord