2011-11-29 17 views
15

Redirijo al usuario al punto final de autorización de OAuth 2.0 en la ventana emergente. ¿Cuál es la mejor manera de cerrar esta ventana emergente emergente y principal después de que el servidor de autorizaciones OAuth 2.0 redirecciona al usuario con un código de autorización?Cerrar ventana emergente de OAuth 2.0 después de redirigir

Gracias de antemano por cualquier ayuda.

Respuesta

21

Creo emergente se puede cerrar por

parent.close(); 

Y para refrescar ventana principal He utilizado este truco:

$(function() { 
    var win; 
    var checkConnect; 
    var $connect = $("#some_button"); 
    var oAuthURL = "http://example.com/account/_oauth?redirect_url=" + redirect_url; 
    $connect.click(function() { 
     win = window.open(oAuthURL, 'SomeAuthentication', 'width=972,height=660,modal=yes,alwaysRaised=yes'); 
    }); 

    checkConnect = setInterval(function() { 
     if (!win || !win.closed) return; 
     clearInterval(checkConnect); 
     window.location.reload(); 
    }, 100); 
}); 

abridor (ventana principal) simplemente comprueba cada vez si la ventana emergente todavía en vivo y si win.closed devuelve true - la ventana principal vuelve a cargar

Espero que ayude a alguien

Cuestiones relacionadas