Google plus 在gapi.auth.authorize之后调用注销时出错

Google plus 在gapi.auth.authorize之后调用注销时出错,google-plus,google-oauth,google-authentication,Google Plus,Google Oauth,Google Authentication,我正在使用google+的客户端登录。访问令牌将在1小时后过期。调用gapi.auth.signOut()不会在令牌过期后注销用户。如果用户的令牌已过期,我将尝试使用客户端id、作用域和immediate=true参数调用gapi.auth.authorize,以重新授权该用户。调用此方法后,gapi.auth.signOut()不起作用。我不明白为什么会这样 代码如下: var google = { signOut: function() { var token = g

我正在使用google+的客户端登录。访问令牌将在1小时后过期。调用
gapi.auth.signOut()
不会在令牌过期后注销用户。如果用户的令牌已过期,我将尝试使用客户端id、作用域和
immediate=true
参数调用
gapi.auth.authorize
,以重新授权该用户。调用此方法后,
gapi.auth.signOut()
不起作用。我不明白为什么会这样

代码如下:

var google = {
    signOut: function() {
        var token = gapi.auth.getToken();

        if(!token) {
            var params = {
                'client_id': global.clientid,
                'session_state': global.sessionState,
                'response_type':'token'
            }
            gapi.auth.checkSessionState(params, function(state){
                if(state == true) {
                    google.doSignOut();
                } else {
                    google.silentAuthorize(function(data){
                        google.doSignOut();
                    });
                }
            });
        } else {
            google.doSignOut();
        }

    },

    doSignOut: function() {
        gapi.auth.signOut();
        google.loggedin = false;
    },

    silentAuthorize: function(callback) {
        var params = {};
        params.client_id = global.clientid;
        params.immediate = true;
        params.scope = "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.login"

        gapi.auth.authorize(params, callback);
    }
}
在令牌未过期时,调用google.signOut可以正常工作。但一旦令牌过期或我通过回调调用google.silenauthorize(),调用gapi.auth.signOut()就会开始抛出错误:

TypeError:无法读取null的属性“clear”


4个小时来一直在努力解决这个问题,非常感谢您的帮助

我无法从前端找到更新令牌的方法,所以我切换到使用GoogleAuth的混合方法。现在,每当会话在php中即将到期时,我都会恢复会话