他们是如何在这里申请Twitter oAuth的?

时间:2009-06-29 23:42:24

标签: php javascript twitter

我刚刚使用PHP为我的twitter应用程序创建了oAuth身份验证。

然后我看到了this site,我很惊讶他们如何打开一个新窗口,关闭该窗口然后在初始窗口中继续请求?!有人可以解释一些Javascript(我猜它们正在使用它)他们是如何做到这一点的?!

我注意到第二个窗口关闭后会发出两个GET请求。

我希望能够做到这样的事情,因为我的用户可以在我的网站上写内容而我不希望它被删除。有没有更好的方式不那么突兀? (窗口弹出)。如果没有,我将使用他们的方法,因为我想不出别的。

全部谢谢

1 个答案:

答案 0 :(得分:1)

以下是与此相关的JavaScript代码部分:

TG.util.oauth = {
    win: null,
    timer: null,
    loginUpdate: function() {
        $.getJSON('/-login/check?format=json', TG.util.oauth.loginCallback);
    },
    loginCallback: function(data) {
        if (data && data.loggedin) {
            TG.util.login.update(data);
        }
    },
    winCheck: function() {
        if (!TG.util.oauth.win || TG.util.oauth.win.closed) {
            window.clearInterval(TG.util.oauth.timer);
            return TG.util.oauth.loginUpdate();
        }
    },
    loginClick: function() {
        TG.util.oauth.win = window.open('/-oauth-twitter/request?gotoafter=1&gotor=oauthtwitter&gotop=action%3Dwindowend', 
            'OAuthTwitterRequest', 
            'menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes,width=800,height=400');
        if (!TG.util.oauth.win) return true;

        TG.util.oauth.timer = window.setInterval(TG.util.oauth.winCheck, 300);
        return false;
    }
};

TG.util.oauth.win = window.open('/-oauth-twitter/request?gotoafter=1&gotor=oauthtwitter&gotop=action%3Dwindowend','OAuthTwitterRequest','menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes,width=800,height=400');
打开oAuth窗口,处理登录

如果窗口未打开(

if (!TG.util.oauth.win) return true;
,则返回true。

TG.util.oauth.timer = window.setInterval(TG.util.oauth.winCheck, 300);
产生一个计时器,用于检查登录是否每300毫秒完成一次。