2009-06-29 8 views
2

Es ist mir gerade gelungen, eine oAuth-Authentifizierung für meine Twitter-Anwendung mit PHP zu erstellen.Wie haben sie Twitter oAuth hier angewendet?

Ich sah dann this site und ich bin überrascht, wie sie ein neues Fenster öffnen, das Fenster schließen und dann die Anfrage im ersten Fenster fortsetzen ?! Kann jemand mit etwas Javascript erklären (ich vermute, dass sie das benutzen), wie sie das gemacht haben ?!

Ich merke, wenn das zweite Fenster schließt, machen sie zwei GET-Anfragen.

Ich möchte in der Lage sein, etwas wie diese zu tun, da meine Benutzer Inhalt auf meiner Website schreiben können und ich möchte nicht, dass das gelöscht wird. Gibt es einen besseren Weg, der nicht so aufdringlich ist? (Fenster öffnet sich). Wenn nicht, werde ich ihre Methode verwenden, da ich an nichts anderes denken kann.

Dank all

Antwort

1

Hier ist der Teil des JavaScript-Code, der den verwandt ist:

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');
öffnet das oAuth Fenster, die die Login

if (!TG.util.oauth.win) return true;
gibt true zurück, wenn die Fenstergriffe ist nicht offen (denke ich).

TG.util.oauth.timer = window.setInterval(TG.util.oauth.winCheck, 300);
Gibt einen Zeitgeber aus, der überprüft, ob die Anmeldung alle 300 Millisekunden erfolgt ist.