Sto utilizzando l'accesso lato client per google +. Il token di accesso scade tra 1 ora. Chiamando gapi.auth.signOut()
non si registra l'utente dopo che il token è scaduto. Sto cercando di autorizzare nuovamente l'utente se il suo token è scaduto chiamando lo gapi.auth.authorize
con i parametri client_id, scope e immediate = true
. Dopo aver chiamato questo metodo, gapi.auth.signOut()
non funziona. Non sono in grado di capire perché è così.Errore di chiamata signout dopo gapi.auth.authorize
Ecco il codice:
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);
}
}
chiamando google.signOut funziona bene, mentre il token non è scaduto. Ma una volta che il token è scaduto o che semplice google.silentAuthorize call() con un callback, chiamando gapi.auth.signOut() inizia a generare un errore:
TypeError: Impossibile leggere proprietà 'clear' di null
State provando a capirlo per 4 ore, ogni aiuto è molto apprezzato!