Закрытие всплывающего окна OAuth 2.0 после перенаправления - PullRequest
23 голосов
/ 29 ноября 2011

Я перенаправляю пользователя к конечной точке авторизации OAuth 2.0 во всплывающем окне. Как лучше всего закрыть это всплывающее окно и обновить главное окно после того, как сервер авторизации OAuth 2.0 перенаправит пользователя с кодом авторизации?

Заранее спасибо за любую помощь.

Ответы [ 2 ]

33 голосов
/ 12 марта 2012

Я думаю, что всплывающее окно вы можете закрыть на

parent.close();

И чтобы обновить главное окно Я использовал этот трюк:

$(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);
});

Средство открытия (главное окно) простокаждый раз проверяет, если всплывающее окно все еще живо и win.closed возвращает true - главное окно перезагружается

Надеюсь, это кому-нибудь поможет

0 голосов
/ 11 декабря 2018

Так что IDK, если это кому-нибудь поможет, но вместо обновления страницы вы, вероятно, захотите проверить ваш сервер, чтобы увидеть, подключен ли пользователь через повторяющийся таймаут, а затем использовать .close() после того, как он это сделал. , Дополнительным преимуществом является то, что теперь у вас будут данные для продолжения процесса регистрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...