Google-Login zweimal treffend?
Frage
Ich verwende Google Login über JS und erscheint, dass mein Code zweimal Daten erhält. Ich bin nicht sicher, warum das auftritt.
Wenn ich auf meine Schaltfläche "Anmelden anmelden mit Google" klicke, spuckt es aus (console.log (Ergebnis)) Daten für den Benutzer. Dann tritt eine Aufforderung auf, dass ich mich um ein Konto von mir auszuwählen (ich bin in mehreren Google-Konten angemeldet). Wenn ich auf das Konto klicke, möchte ich, dass der Code diese Benutzerdaten erneut ausspuckt.
Warum kommt das auf? Es ist ein Problem, denn wenn ich die Daten ausspucke, möchte ich einen AJAX-Anruf erstellen, um den Benutzer zu überprüfen und sie dann umleiten. Im Wesentlichen versucht es, dies zweimal zu tun - was nicht cool ist, was ist, wenn ich mich nicht mit den Anmeldeinformationen anmelden möchte, Google geht mit Google auf dem ersten Gehen wieder auf?
generasacodicetagpre.update: Wenn ich mich von allen meinen Google-Konten abmelde (mit Ausnahme von einem und nur), ist der Anruf an Google immer noch dupliziert. Diesmal loggt es sich an und ich sehe console.log (), die Daten zweimal ausgibt. Zugangs-Token sind identisch.
update 2: console.log (bzw. resp) gibt zweimal
aus.update 3: nur mehr Klarstellung:
Lösung
Sie stoßen auf zwei Anrufe auf "console.log (bzw."); Innerhalb Ihrer "Googlecallback" -Funktion, weil:
die Funktion, die Sie für Ihren Anmeldeabruf definieren, werden aufgerufen Jedes Mal, wenn sich der Benutzer in Status ändert, ändert sich
Dieses Zitat stammt von der "Überwachung des Sitzungszustands des Benutzers" Webseite.
Ihr Rückrufcode wird also ausgelöst, wenn die Anmeldeaufforderung ("Prompt") angezeigt wird, und wenn das Banner "Welcome Back" angezeigt wird ("Auto").
Um Ihren Rückrufcode vom Umgang mit jedem Trigger-Ereignis zu stoppen, können Sie Ihren Code wie folgt ändern:
generasacodicetagpre.Dieser Code ruft nur die Funktion "GAPI.CLIENT.OAUTH2.USERINFO.GET ()" auf, wenn ein Benutzer signiert ist und das Ereignis, das den Rückruf ausgelöst hat, von Typ "Prompt".
Andere Tipps
Google Mit dem Status 'Prompt', aber durch Status 'Auto', nur wenn der Benutzer einen vorherigen Erfolgsanmeldung hat und er sich automatisch anmelden kann.