2009-06-29 8 views
2

Je viens de réussir à créer une authentification oAuth pour mon application Twitter en utilisant PHP.Comment ont-ils appliqué Twitter oAuth ici?

J'ai alors vu this site et je suis surpris de voir comment ils ouvrent une nouvelle fenêtre, ferment cette fenêtre et continuent la demande dans la fenêtre initiale ?! Quelqu'un peut-il expliquer avec un peu de Javascript (je devine qu'ils utilisent ceci) comment ils ont fait ceci ?! Je remarque que lorsque la deuxième fenêtre se ferme, ils font deux requêtes GET. Je veux être capable de faire quelque chose comme ça puisque mes utilisateurs peuvent écrire du contenu sur mon site et je ne veux pas que cela soit supprimé. Y a-t-il un meilleur moyen qui ne soit pas si envahissant? (fenêtre ouverte). Sinon, je vais utiliser leur méthode comme je ne peux pas penser à autre chose.

Merci à tous

Répondre

1

Voici la partie du code JavaScript qui est lié à ce que:

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');
ouvre la fenêtre oAuth, qui gère la connexion

if (!TG.util.oauth.win) return true;
renvoie true si la fenêtre n'est pas ouvert (je suppose).

TG.util.oauth.timer = window.setInterval(TG.util.oauth.winCheck, 300);
génère un temporisateur qui vérifie si la connexion a été effectuée toutes les 300 millisecondes.

Questions connexes