it-swarm.com.de

Google Auth API Javascript-ID-Initialisierungsfehler in Chrome

Ich verwende GSuite und programmiere eine sehr einfache Web-App für die Verwendung der Google Auth-API. Ich erhalte die Ausnahme "idpiframe_initialization_failed".

Jetzt habe ich genau den HTML-Code wie im Google-Beispiel gezeigt: https://developers.google.com/api-client-library/javascript/samples/samples

1) Ich habe ein Projekt in der Google Developer Console erstellt.

2) Ich habe den OAUTH-Autorisierungsbildschirm eingerichtet

3) Ich habe die Client-ID erstellt, Einschränkungen und Weiterleitungs-URL erstellt

4) Ich habe auch den API KEY erstellt

5) Schließlich habe ich die People-API aktiviert, da Discovery-Services beim Festlegen des discoveryDocs-Parameters fehlgeschlagen sind

Bei all diesen Schritten, wenn ich die gapi.client.init anrufe, wird eine Ausnahme ONLY in chrome ausgelöst. Ich kann nicht verstehen, warum.

Der Code zum Initialisieren der API lautet:

    gapi.client.init({
        apiKey: 'MY_API_KEY',
        discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"],
        clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
        scope: 'profile'
    }).then(function (response) {
      // Listen for sign-in state changes.
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

      // Handle the initial sign-in state.
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
    },function(reason){
        console.log('onerror');
        console.log(reason);
      // Listen for sign-in state changes.
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

      // Handle the initial sign-in state.
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());

Der Code führt den Fehlerblock aus und die Nachricht lautet:

details: "Failed to read the 'localStorage' property from 'Window': Access is denied for this document."
error:"idpiframe_initialization_failed"

Irgendwelche Ideen, warum ich in diesen Fehler komme?

Vielen Dank!

15
David Pascual

Ich bin auf das gleiche Problem gestoßen. Nachdem ich einige Zeit investiert hatte, fand der Grund. Dieser Fehler ist darauf zurückzuführen, dass Sie in Chrome-Einstellungen die Option Cookies und Websitedaten von Drittanbietern blockieren aktiviert haben.

Sie können dieses Problem beheben, indem Sie diese Option deaktivieren: "Um die Einstellung zu finden, öffnen Sie die Chrome-Einstellungen, geben Sie" Inhaltseinstellungen "in das Suchfeld ein, klicken Sie auf die Schaltfläche Inhaltseinstellungen und zeigen Sie das vierte Element unter Cookies an." Deaktivieren Sie das Kontrollkästchen "Drittanbieter-Cookies und Websitedaten blockieren".

Hoffentlich hilft Ihnen das bei der Lösung Ihres Problems.

 enter image description here

18
lavleen

Das Problem liegt bei der API-Konsole von Google und bei der Erstellung von Anmeldeinformationen. Es scheint nur zu funktionieren, wenn ich über die folgende URL darauf zugreife https://developers.google.com/identity/sign-in/web/sign-in#before_you_begin .__ Es gibt einen Link, mit dem Sie Ihre App und die OAuth-Anmeldeinformationen erstellen können. Wenn ich zur Konsole gehe und sie über diesen Bildschirm erstelle, scheint sie nicht zu funktionieren. Nachdem ich es erneut versucht und erneut erstellt und mit einer neuen App getestet habe, habe ich herausgefunden, dass die URL, die Sie den Authorized Javascript Origins hinzufügen, nicht immer hinzugefügt wird. 

Wenn alles gut ist, sollte die URL auf der Seite mit den Anmeldeinformationen verfügbar sein see screenshot here

2

In meinem Fall musste ich nur ein wenig warten, bis Google den Ursprung berücksichtigt hat. Ich kann nicht genau sagen, wie lange es gedauert hat. Ich habe ~ 30min gewartet. Ich ging dann schlafen und am nächsten Morgen funktionierte es.

Edit: Ooops Ich habe gerade gemerkt, dass ich http:// und nicht https:// verwendete. Das war das eigentliche Problem.

1
mbonnin

Ich hatte das gleiche Problem und suchte nach 3 Tagen: Löse "popup_closed_by_user" Gehe zu deiner console.google gehe zu deiner API MANAGE: Anmeldeinformationen: ändere deine Anmeldeinformationen:

Autorisierter Javascript-Ursprung (http://localhost:port); autorisierte Weiterleitungs-URI (http://localhost:port/auth/google/callback);

Beispiel: || Autorisierter Javascript-Ursprung (http://localhost:4200); autorisierte Weiterleitungs-URI (http://localhost:4200/auth/google/callback)

0
Corbotan