Twitter的OAuth授权

问题描述:

我觉得甚至问这个,因为答案可能已经在我的鼻子令人难以置信的愚蠢,但这里有云:Twitter的OAuth授权

TweetMeme有一个重新鸣叫叽叽喳喳发布者可以在他们的博客上放置的小部件。当用户点击小部件时,它会弹出一个窗口,允许用户使用twitter进行身份验证,然后重新发布消息。

这似乎使用一些特殊的Twitter oauth弹出窗体因子 - 除非表面之下有更奇特的事情发生以验证用户身份。

弹出窗口如下所示:

http://twitpic.com/1kepcr

我宁愿通过弹出手柄的认证,而不是用户发送到一个全新的页面(应用程序I”米工作),他们似乎有最优雅的解决方案。他们如何做到这一点的想法?

他们所做的只是在新窗口中打开一个页面http://api.tweetmeme.com/share?url=someURL&source=tweetmeme(使用目标_blank),然后从那里开始该过程。

编辑:我在看错误的转推按钮。对于您的具体示例,首先点击转推按钮,在新窗口中打开Tweetmeme页面http://tweetmeme.com/ajax/partial?...。点击是,然后通过将您(仍在该窗口中)发送到https://twitter.com/oauth/authenticate(使用适当的参数)来启动OAuth进程。

+0

是的,但是最有趣的事情,就是当用户登录,并从Twitter页面heshould被重定向到tweetmeme回调页。我无法弄清楚发回回调页面的参数是如何传递到主页面的。 – 2010-05-02 21:58:05

我觉得这个过程是这样的(我认为他们已经用在服务器端PHP):

首先,它会打开一个jQuery般弹出,但它不是严格相关的Twitter登录功能。 当你确认弹出窗口时,真正的登录过程开始,所以它打开一个新的弹出窗口,里面有一些php,持​​有会话。 这些脚本使用站点的应用程序参数来请求推送请求令牌,并将它们保存到$ _SESSION数组中。 如果它是正确的,twitter会将您发送到twitter身份验证页面(https://twitter.com/oauth/authenticate),并且在您插入了您的登录参数后,twitter会将您发送到该站点defiend的回调页面。这里有另一个请求访问令牌的php页面,并将它们保存到$ _SESSION数组中。如果现在这个网站有他需要查询你的配置文件的参数,那么在弹出窗口刷新开启窗口(主站点)的最后脚本并关闭自己。 现在主窗口在$ _SESSION数组中有所有有趣的参数。

检查this所有服务器端工作的有用库。

此链接可能是你的答案,我已经尝试过了,它的工作..
http://zuzara.com/blog/2010/05/15/jquery-plugin-for-twitter-oauth-via-popup-window-facebook-style/