Sto tentando di implementare Google Sign-in per le app lato server come mostrato nella documentazione di Google: Google Sign-In for server-side apps, ma la finestra di consenso non richiede mai l'accesso offline. Dopo aver selezionato un utente, si chiude e chiama la funzione di gestione degli accessi.API di accesso javascript di Google: no accesso offline
Di conseguenza, quando ottengo il codice unico e lo invii al server, non riesco a sostituirlo con un token di aggiornamento, solo per i token di accesso e ID.
Ecco il mio codice cliente:
Nel file HTML: codice
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Javascript:
var auth2;
function init() {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: '<my client id>.apps.googleusercontent.com',
scope: 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.appfolder'
});
});
$('#signinButton').click(function() {
auth2.grantOfflineAccess({'redirect_uri': 'postmessage'}).then(onSignIn);
});
}
function onSignIn(authResult) {
if (authResult['code']) {
// Send the code to the server
}
}
Il progetto in console Google contiene una credenziale client web con le origini javascript rilevanti e nessun URI di reindirizzamento autorizzato.
Cosa devo fare per forzare la finestra di consenso per chiedere l'accesso offline?
Grazie Mael! Richiede infatti l'accesso offline ogni volta e ho il token di aggiornamento. – burgi
Felice di vederlo funziona @burgi! Btw, sei in grado di concedere l'autenticazione incrementale con l'accesso lato server? Sono bloccato in questo problema: http://stackoverflow.com/questions/35023983/incremental-combined-authorization-with-google-signin-for-server-side-apps e ogni nuovo ambito che chiedo all'utente di autorizzare, il risultato del token sovrascrive i precedenti ambiti autorizzati ... – Mael
Mi dispiace @Mael, non sto usando l'autenticazione incrementale. La mia logica aziendale richiede che tutte le autorizzazioni siano avanzate. – burgi