2010-05-02 17 views
7

me siento increíblemente estúpido, incluso para preguntar esto ya que la respuesta pueda estar ya bajo mi nariz, pero aquí va:Twitter autorización OAuth en una ventana emergente en lugar de en la ventana principal del navegador

tweetmeme tiene un gorjeo Re-tweet widget que los editores pueden colocar en sus blogs. Cuando un usuario hace clic en el widget, abre una ventana que le permite al usuario autenticarse con Twitter y volver a twittear.

Esto parece utilizar un factor de forma de ventana emergente de Twitter especial, a menos que ocurra algo más elegante debajo de la superficie para autenticar al usuario.

La ventana emergente se parece a esto:

http://twitpic.com/1kepcr

prefiero manejar una autenticación a través de una ventana emergente en lugar de enviar al usuario a una nueva página de la marca (para la aplicación I' estoy trabajando) y parecen tener la solución más elegante. ¿Pensamientos sobre cómo lo hicieron?

Respuesta

0

Todo lo que están haciendo es abrir una página http://api.tweetmeme.com/share?url=someURL&source=tweetmeme en una nueva ventana (usando target _blank), y luego comenzar el proceso desde allí.

EDIT: Estaba buscando el botón de retweet equivocado. Para su ejemplo específico, al hacer clic en el botón de retweet se abre por primera vez la página Tweetmeme http://tweetmeme.com/ajax/partial? ... en una nueva ventana. Al hacer clic en sí, inicia el proceso de OAuth enviándote (aún en esa ventana) al https://twitter.com/oauth/authenticate (con los parámetros correspondientes).

+0

Sí, pero lo más interesante, es cuando el usuario de inicio de sesión, ya partir de esa página de twitter heshould redirigido a devolución de llamada Tweetmeme página. No puedo ver cómo los params enviados a la página de devolución de llamada pasan a la página principal. –

3

creo que el proceso es algo como esto (supongo que han utilizado php en el lado del servidor):

En primer lugar, se abre una ventana emergente jQuery similar, pero no es estrictamente relacionadas con la señal de Twitter en funciones . El proceso de inicio de sesión real comienza cuando confirma esa ventana emergente, por lo que abre una nueva ventana emergente, con algunos php adentro, que # contiene una sesión. Esos scripts piden que se twitteen los tokens de solicitud, utilizando los parámetros de la aplicación del sitio y los guardan en el array $ _SESSION. Si está bien, Twitter lo envía a la página de autenticación de Twitter (https://twitter.com/oauth/authenticate), y después de haber insertado sus parámetros de inicio de sesión, Twitter lo envía a la página de devolución de llamada definida por ese sitio. Aquí hay otra página php que solicita tokens de acceso y los guarda en el array $ _SESSION. Si todo está bien, el sitio tiene parámetros que necesita para consultar su perfil, por lo que las últimas secuencias de comandos dentro de la ventana emergente abren la ventana del abridor (sitio principal) y se cierran. Ahora la ventana principal tiene todos los parámetros interesantes dentro de la matriz $ _SESSION.

Compruebe this biblioteca útil para todo el trabajo del lado del servidor.

Cuestiones relacionadas