2016-03-21 6 views
2

Ich baue AngularJS-Anwendung, die grundlegende Google Signin-Prozess verwendet https://developers.google.com/identity/sign-in/web/.Google Signin Onsuccess Funktion tut nichts, wenn ich 3rd Party Cookies blockieren

Alles funktioniert gut, ich kann mich als Google-Nutzer anmelden, außer dass ich ein Problem habe, wenn ich Cookies von Drittanbietern deaktiviere.

Wenn Cookies von Drittanbietern im Browser wie folgt deaktiviert sind (Chrome) content settings Google Anmeldungsprozess tut nichts.

Genauer gesagt habe ich eine Funktion, die auf OnSuccess-Ereignis für Google-Taste ausgelöst wird, tut aber nichts. Es ist auch nicht möglich, einen Fehler zu finden, daher kann ich später keine Abhilfe schaffen.

Eine Sache, die auch geschieht, ist, dass beim Laden von Metadaten google, wenn Cookies von Drittanbietern deaktiviert sind es einen Fehler auslöst

Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document 

Es scheint, dass Google tut alles in Ordnung, wie es auf den Erfolg sein sollte, aber doesn Führen Sie den Code, der in dieser Onsuccess-Funktion ist, nicht aus.

ich alles versucht und sogar auf Google Developers-Website auf Sign-in Integrieren Seite, wenn ich in Taste auf Probe Zeichen klicken sie das gleiche passiert:

  • Wenn ich Cookies erlauben es mir gibt „Angemeldet als : MyName“
  • Wenn ich Cookies deaktivieren ich es gibt nichts zurück

Die allgemeine Frage ist, gibt es eine Möglichkeit, diesen Fehler und Arbeit um diese zu fangen und nicht mit google führt alles, wie es in Ordnung ist und doesn Code ausführen, der in Onsuccess-Funktion ist Ion?

Antwort

0

Benutzer, bei denen Cookies von Drittanbietern deaktiviert sind cannot access pop-up Google sign-in.

Dies ist ein Deal-Breaker für uns, da Cookies von Drittanbietern eine empfohlene Datenschutzpraxis sind (und die Standardeinstellung in Safari). Stattdessen ist es notwendig, das Google API zu generate an authentication URL zu verwenden, nach dem Sie einen Rückruf mit einem Token erhalten.