5
我正在使用客戶端登錄谷歌+。訪問令牌在1小時後過期。在令牌過期後調用gapi.auth.signOut()
不會將用戶註銷。我試圖通過調用gapi.auth.authorize
與client_id,scope和immediate = true
參數來重新授權用戶,如果他的令牌已過期。調用此方法後,gapi.auth.signOut()
不起作用。我無法理解爲什麼。gapi.auth.authorize之後呼叫註銷錯誤
下面是代碼:
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.silentAuthorize()調用gapi.auth.signOut()開始拋出一個錯誤:
類型錯誤:無法讀取屬性空的「清除」
一直試圖找出現在4個小時,任何幫助是高度讚賞!