仅当我使用IE11时,事件addUserSignedOut才会被触发自动化

问题描述 投票:2回答:1

我正在使用oidc.js版本:1.5.2 with aspnet webforms,出于某种原因,当我导航到我的回调页面时,有人正在触发我的addUserSignedOut事件。这种奇怪的行为只发生在IE11中(在chrome,edge,firefox中工作正常)。

这是主页面

        var baseUrl = top.location.protocol + '//' + top.location.host;

        var config = {
            authority: "http://...",
            client_id: 'xyz',
            redirect_uri: baseUrl + '/myFolder/callback.html?',
            post_logout_redirect_uri: baseUrl + '/myFolder/page.html?',
            revokeAccessTokenOnSignout: true,
            response_type: 'id_token token',
            scope: 'abc',
            prompt: 'true',
            loadUserInfo: true,
            automaticSilentRenew: true,
            accessTokenExpiringNotificationTime: 1800,
        };

       var mgr = new Oidc.UserManager(config);

        var isLoggedIn = function () {
            return new Promise(function (resolve) {
                mgr.getUser()
                    .then(function (token) {
                        console.log("getUser token=" + token);
                        resolve(token != null);
                    });
            });
        }

        var doLogin = function () {
            this.isLoggedIn().then(function (res) {
                if (!res)
                    mgr.signinRedirect();
            });
        };

        var doLogout = function () {
            mgr.signoutRedirect();
        };

        var registerEvents = function () {
            this.isLoggedIn().then(function (res) {

                if (res) {
                    mgr.events.addUserSignedOut(function () {

                        Auth.userManager.removeUser();

                        return Auth.userManager.signoutRedirect();
                    });
                }
            });
        };

        registerEvents();


    </script>

这是回调页面

<script>
    new Oidc.UserManager({ response_mode: "query" }).signinRedirectCallback().then(function (res) {
        if (res) {
            console.log("token = " + res.access_token);
            window.location.href = "page.html";
            }
        })
        .catch(function (e) {
            console.error(e);
        });
</script>
javascript internet-explorer oidc
1个回答
3
投票

也许问题与IE安全区域有关,您可以尝试进入Internet选项>安全性并取消选中“Internet”区域的“已启用保护模式”。

© www.soinside.com 2019 - 2024. All rights reserved.