Ошибка: нет состояния в ответе oidc-client.js

Я получаю эту ошибку Нет состояния в ответ после выхода из системы. Он приходит к URL-адресу обратного вызова, остается там некоторое время, а затем выдает ошибку. НО После обновления состояние добавляется к URL-адресу, и страница перенаправляет меня на предполагаемую страницу входа с сообщением об успешном выходе из системы.

Ошибка при выходе https://app.something.url?device=desktop#/oops/No%20state%20in%20response

Мой код ниже:

Создание экземпляра диспетчера пользователей

window.__env = window.__env || {};


var metadataParams = {
    issuer: window.__env.ssoUrl,
    jwks_uri: window.__env.ssoUrl + '/XX/JWKS', // JSON web key contains encryption information used to validate the token
    authorization_endpoint: window.__env.ssoUrl + '/as/XXXXXX',  // Authorisation endpoint
    token_endpoint: window.__env.ssoUrl + '/as/XXXXX',
    userinfo_endpoint: window.__env.ssoUrl + '/idp/XXXXX', // UserInformation endpoint
    end_session_endpoint: window.__env.ssoUrl + '/XXX/startXXX.ping' + '?TargetResource=https://' + window.location.hostname + '/somefolder/callback.html' // Logout endpoint
};


window.__env.ssoConfig = {
    authority: window.__env.ssoUrl + '/as/XXXXXXX', // AUTH URL on the token during token validation 
    metadata: metadataParams,
    client_id: window.__env.ssoClientId,
    redirect_uri: 'https://' + window.location.hostname + '/somefolder/callback.html',  // URL where login will redirect
    response_type: 'code',
    scope: 'XXXXXX',
    checkSessionInterval: 10,
    silent_redirect_uri:'https://' + window.location.hostname + '/somefolder/callback.html',
    automaticSilentRenew: true,
    filterProtocolClaims: false,
    silentRequestTimeout: 60000,
    loadUserInfo: true
};

// create a user manager instance
var userManager = new Oidc.UserManager(window.__env.ssoConfig);

Метод выхода:

function logMeOut(params, alternateUrl, override, isLogoutButton) {
        var gotoUrl;
        var idToken = window.__env.idToken;
        params = params || {};

        // Clear all storage data
        AppStoreData.clearData();
        sessionStorage.removeItem('appName-ssoHash');
        localStorage.clear();

        if (override) {
            debug.log('there\'s an override');
            gotoUrl = alternateUrl ? alternateUrl : '';
        } else {
            if (tpUID) {
                params.tpUID = tpUID;
            }
            gotoUrl = setRedirectUrl(defaultReturnUrl, destinationParam, type, params);
            debug.log(gotoUrl);
        }

        sessionStorage.setItem('appname-redirect', encodeURI(gotoUrl));

        // if logged in, then... log out with gotoUrl appended
        if (idToken && isLogoutButton) {
            // Run signout
            var logoutSSO = userMgr.signoutRedirect();
            logoutSSO.then(function() {
                debug.log('logout success');
            }).catch(function(err) {
                debug.log(err);
                debug.log('logout fail');
            });
        }
        //else, go to location
        else {
            if (gotoUrl) {
                window.location = gotoUrl;
            }
            else {
                debug.log('oops: no url to go to');
                $state.go('oops');
            }
        }
    }

Код callback.html ниже:

window.onload = function () {
                var redirectUrl = decodeURI(sessionStorage.getItem('appName-redirect'));
                if (redirectUrl) {
                    sessionStorage.setItem('appName-signinRedirect', 'true');
                    // Redirect back to portal
                    var params = window.location.search.split('?')[1];
                    // Remove any states
                    redirectUrl = redirectUrl.split('#/')[0];
                    // Redirect back
                    window.location.href = redirectUrl + '&' + params;
                }
            }

//Dependencies
"oidc-client": "1.8.2"
"angular": "1.5.8",
"@uirouter/angularjs": "0.3.1"

Вход выполнен успешно, проблем нет


person Gauravsingh Sisodiya    schedule 01.02.2021    source источник
comment
Похоже, проблема связана с этим: stackoverflow.com/questions/49220150/, возможно, взгляните на предлагаемые там решения.   -  person Michal Trojanowski    schedule 02.02.2021
comment
Привет @MichalTrojanowski, я изучил это, но, к сожалению, не смог помочь.   -  person Gauravsingh Sisodiya    schedule 03.02.2021