Ich benutze Google Login via JS und es scheint, dass mein Code Daten zweimal erhält. Ich bin nicht sicher, warum das passiert.Google-Anmeldung zweimal tippen?
Wenn ich auf meine Schaltfläche "Mit Google anmelden" klicke, werden Daten (console.log (Ergebnis)) für den Benutzer ausgegeben. DANN erscheint eine Aufforderung, mich zu bitten, ein Konto von mir zu wählen (ich bin bei mehreren Google-Konten angemeldet). Wenn ich auf das Konto klicke, das ich möchte, spuckt der Code diese Benutzerdaten erneut aus.
Warum tritt das auf? Es ist ein Problem, denn wo ich die Daten ausspucke, möchte ich einen Ajax-Anruf machen, um den Benutzer zu verifizieren und dann umzuleiten. Also im Wesentlichen versucht es das zweimal - was nicht cool ist, wenn ich mich nicht mit den Zugangsdaten einloggen möchte, die Google beim ersten Mal zurückgibt?
(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']);
}
}
Update: Wenn ich aus allen meinen Google-Konten anmelden (mit Ausnahme von einem und nur einem), wird der Anruf zum Google noch dupliziert. Dieses Mal meldet es sich an und ich sehe console.log() Daten zweimal ausgeben. Zugriffstoken sind identisch.
Update 2: console.log (bzw.) ausgibt zweimal
Update 3: Nur mehr Klarheit:
Was halten Sie zweimal ausgegeben sehen werden? "console.log (resp);" oder "console.log ('Anmeldezustand:' + authResult ['error']);"; Ich nehme an, es ist das spätere? –
console.log (resp); die Benutzerinformationen zweimal. In meinem ursprünglichen Beitrag ist es der Standardbenutzer zuerst. Und dann die Benutzerinformationen des ausgewählten acct. In meinem Update ist es der Standardwert zweimal. – Mike
Als ich das Tutorial hier https://developers.google.com/+/web/signin/javascript-flow verfolgt habe, aber deinen Code in "gapi.client.load", "console.log (resp)" verwendet habe wird nur einmal aufgerufen. –