Sto utilizzando Google Login tramite JS e sembra che il mio codice riceva i dati due volte. Non sono sicuro del motivo per cui ciò si sta verificando.Google Login che colpisce due volte?
Quando faccio clic sul mio pulsante "Accedi con Google", sputa (dati console.log (risultato)) per l'utente. ALLORA si verifica un prompt che mi chiede di scegliere un mio account (ho effettuato l'accesso a diversi account Google). Quando faccio clic sull'account che desidero, il codice sputa di nuovo i dati dell'utente.
Perché si verifica? È un problema perché quando sputo fuori i dati, mi piacerebbe fare una chiamata ajax per verificare l'utente e quindi reindirizzarli. Quindi, in sostanza, si sta provando a farlo due volte - il che non è figo, cosa succede se non voglio accedere utilizzando le credenziali che google restituisce al primo tentativo?
(function() {
var po = document.createElement('script');
po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
function googleLogin() {
var additionalParams = {
'callback': googleCallback
};
gapi.auth.signIn(additionalParams);
}
function googleCallback(authResult) {
if (authResult['status']['signed_in']) {
gapi.client.load('oauth2', 'v2', function() {
gapi.client.oauth2.userinfo.get().execute(function(resp) {
console.log(resp);
})
});
} else {
console.log('Sign-in state: ' + authResult['error']);
}
}
Aggiornamento: Se i dati di login di tutti i miei account Google (ad eccezione di una e una sola), la chiamata a Google è ancora duplicato. Questa volta effettua l'accesso e vedo console.log() che emette i dati due volte. I token di accesso sono identici.
Aggiornamento 2: console.log (resp) è l'output due volte
Update 3: Basta maggiori chiarimenti:
Cosa vedi in fase di uscita due volte? "Console.log (rispettivamente);" o "console.log ('Stato accesso:' + authResult ['error']);"; Suppongo sia il dopo? –
console.log (resp); le informazioni dell'utente due volte. Nel mio post originale, è l'utente predefinito per primo. E poi le informazioni sull'utente dell'acct che selezionano. Nel mio aggiornamento, è il valore predefinito due volte. – Mike
Quando ho seguito il tutorial qui https://developers.google.com/+/web/signin/javascript-flow ma ho usato il tuo codice all'interno di "gapi.client.load", "console.log (resp);" è chiamato solo una volta. –