2010-05-02 5 views
7

mi sento incredibilmente stupido anche per chiedere questo dal momento che la risposta potrebbe essere già sotto il naso, ma qui va:Twitter autorizzazione OAuth in un pop-up invece che nella finestra principale del browser

TweetMeme ha un Twitter Re-Tweet widget che gli editori possono inserire nei loro blog. Quando un utente fa clic sul widget, apre una finestra che consente all'utente di autenticarsi con twitter e quindi re-twittare.

Questo sembra utilizzare un fattore di forma popup di Twitter oauth speciale, a meno che non ci sia qualcosa di divertente che si verifica sotto la superficie per autenticare l'utente.

La finestra pop-up si presenta così:

http://twitpic.com/1kepcr

preferirei gestire l'autenticazione tramite un pop-up piuttosto che inviare l'utente a una marca nuova pagina (per l'applicazione I' sto lavorando) e sembrano avere la soluzione più aggraziata. Pensieri su come hanno fatto questo?

risposta

0

Tutto quello che stanno facendo è aprire una pagina http://api.tweetmeme.com/share?url=someURL&source=tweetmeme in una nuova finestra (usando il target _blank), quindi avviare il processo da lì.

MODIFICA: Stavo guardando il tasto retweet sbagliato. Per il tuo esempio specifico, fai clic sul pulsante di retweet per aprire la pagina Tweetmeme http://tweetmeme.com/ajax/partial? ... in una nuova finestra. Facendo clic su Sì, avvia il processo OAuth inviandoti (sempre in quella finestra) a https://twitter.com/oauth/authenticate (con i parametri appropriati).

+0

Sì, ma la cosa più interessante, è quando login utente, e da quella pagina Twitter heshould essere reindirizzato a TweetMeme callback pagina. Non riesco a capire come i parametri inviati alla pagina di callback siano passati alla pagina principale. –

3

Penso che il processo è qualcosa di simile (suppongo che hanno usato php sul lato server):

In primo luogo si apre un popup jQuery-come, ma non è strettamente correlate alle Twitter segno nelle funzioni . Il vero processo di accesso inizia quando si conferma tale popup, quindi apre un nuovo popup, con qualche php all'interno, che # tiene una sessione. Questi script chiedono di cinguettare i token di richiesta, utilizzando i parametri dell'applicazione del sito e salvarli nell'array $ _SESSION. Se è tutto a posto, Twitter ti manda alla pagina di autenticazione di Twitter (https://twitter.com/oauth/authenticate), e dopo aver inserito i tuoi parametri di accesso, twitter ti invia alla pagina di richiamata delimita da quel sito. Qui c'è un'altra pagina php che richiede i token di accesso e li salva nell'array $ _SESSION. Se è tutto a posto, ora il sito ha parametri che gli servono per interrogare il tuo profilo, quindi gli ultimi script all'interno della finestra di aggiornamento della finestra di aggiornamento (sito principale) si chiudono. Ora la finestra principale ha tutti i parametri interessanti all'interno dell'array $ _SESSION.

Controllare la libreria this utile per tutto il lavoro sul lato server.

Problemi correlati