Закрытие всплывающего окна OAuth 2.0 после перенаправления

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

Заранее благодарим за помощь.

Ответы

Ответ 1

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

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 - главное окно перезагружает

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

Ответ 2

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