2015-09-29 16 views
7

Sto utilizzando Google Sign-in per autenticare gli utenti sul mio sito Web e quindi come passaggio separato per chiedere autorizzazioni offline.L'oggetto Google User non ha il metodo grantOfflineAccess?

Secondo la documentazione, l'oggetto GoogleUser deve avere un metodo "grantOfflineAccess" che richiede autorizzazioni aggiuntive senza che richiede all'utente di confermare il proprio account. Tuttavia, controllando l'oggetto in Firebug, trovo tutti gli altri metodi descritti ma non concedoOfflineAccess.

Ho una soluzione utilizzando il metodo grantOfflineAccess dell'oggetto GoogleAuth ma che costringe l'utente a confermare la loro conto (che vorrei evitare, come hanno appena effettuato questo passo durante il login). Vorrei mantenere il login e autorizzare le richieste di accesso offline separate in modo da poter fare una qualche convalida tra di loro.

La documentazione è errata/obsoleta? C'è un altro modo per ottenere il mio comportamento desiderato?

risposta

8

L'ho appena verificato, il metodo non esiste. Penso che questo sia in realtà un errore nei documenti.

Così mi sono messo un po 'in giro e ho trovato un altro modo per ottenere quello che vuoi: c'è un parametro (apparentemente non documentato) chiamato authuser. È fondamentalmente l'indice dell'account che hai effettuato l'accesso (0 per il primo, 1 per il secondo, ...). Google utilizza questo internamente per roba come GoogleDocs ecc Dopo un po 'Colpendo, ho trovato l'authuser nei dati GoogleUser:

enter image description here

scopre che wc sono i dati getAuthResponse(), in modo da poter accedere a questo indice con: gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().session_state.extraQueryParams.authuser.

È ora possibile chiamare il grantOfflineAccess di GoogleAuth con questo parametro, con conseguente la seguente chiamata:

var auth = gapi.auth2.getAuthInstance(); 
var user = auth.currentUser.get(); 
auth.grantOfflineAccess({ 
    authuser: user.getAuthResponse().session_state.extraQueryParams.authuser 
}); 

Si aprirà il prompt senza un selettore account :-) Speranza ho potuto fare!

+0

Grande investigazione, grazie! – Wogan