在php中接收oauth2的访问令牌后关闭弹出窗口

时间:2018-01-20 15:16:04

标签: javascript php jquery oauth-2.0 popup

我正在尝试连接到我所在城市的oauth2流程,我希望用户能够获得一个可以登录的弹出窗口,然后在我们收到访问令牌后弹出窗口应该关闭,主窗口应该是重新加载(所以我可以使用令牌)。

我在找出oauth2流程完成后如何关闭弹出窗口时遇到问题... 到目前为止,这是我的代码:

<button id="customBtnAprofielLogin" type="button" class="btn btn-social">
    <span class="fa"></span>
    <span><?=lang("antwerpen_alogin")?></span>
</button>

<script type="text/javascript">
    var signinWin;
    $('#customBtnAprofielLogin').click(function () {
        //var pos = screenCenterPos(800, 500);
        signinWin = window.open("https://api-oauth2.city.be/v1/authorize?client_id=xxx&redirect_uri=http://localhost/codeigniter/login/city/aProfielCallback&lng=nl&scope=username+name+avatar+email+phone&service=city-aprofiel-v1&response_type=code", "SignIn", "width=972,height=660,modal=yes,alwaysRaised=yes");
        setTimeout(CheckLoginStatus, 2000);
        signinWin.focus();
        return false;
    });

    function CheckLoginStatus() {
        if (signinWin.closed) {
            alert("yeey its closed");
        } else setTimeout(CheckLoginStatus, 1000);
        console.log(signinWin.document);
        if (signinWin.location.href) {
            console.log("URL CHANGED");
        }
    }
</script>

通过这段代码,我可以看到一旦获得访问令牌就改变了URL,但是,控制台检查器充满了错误,表明它是一个交叉原始错误(这是合乎逻辑的)。但是,我不认为这是在popup重新加载之前看到所有错误弹出的正确方法。

  

未捕获的DOMException:阻止了一个包含起源的框架&#34; http://localhost&#34;   从访问跨源框架。

0 个答案:

没有答案