web-dev-qa-db-fra.com

Origine non valide pour le client de Google API Oauth

Je reçois cette erreur de Google API Oauth:

idpiframe_initialization_failed ", détails:" Origine non valide pour le client: http: //127.0.0 .… elle répertorie cette origine pour l'ID client de votre projet

J'essaie d'envoyer une demande à partir de ce chemin local:

http://127.0.0.1:8887/

Et j’ai déjà ajouté cette URL aux origines JavaScript autorisées section:  enter image description here

Ceci est mon code:

<!-- The top of file index.html -->
<html itemscope itemtype="http://schema.org/Article">
<head>
  <!-- BEGIN Pre-requisites -->
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
  </script>
  <script src="https://apis.google.com/js/client:platform.js?onload=start" async defer>
  </script>
  <!-- END Pre-requisites -->

<!-- Continuing the <head> section -->
  <script>
    function start() {
      gapi.load('auth2', function() {
        auth2 = gapi.auth2.init({
          client_id: 'MY CLIENT ID.apps.googleusercontent.com',
          // Scopes to request in addition to 'profile' and 'email'
          //scope: 'https://www.google.com/m8/feeds/'
        });
      });
    }
  </script>




</head>
<body>


<button id="signinButton">Sign in with Google</button>
<script>
  $('#signinButton').click(function() {
    // signInCallback defined in step 6.
    auth2.grantOfflineAccess().then(signInCallback);
  });
</script>



<!-- Last part of BODY element in file index.html -->
<script>
function signInCallback(authResult) {
  if (authResult['code']) {

    // Hide the sign-in button now that the user is authorized, for example:
    $('#signinButton').attr('style', 'display: none');

    // Send the code to the server
    $.ajax({
      type: 'POST',
      url: 'http://example.com/storeauthcode',
      // Always include an `X-Requested-With` header in every AJAX request,
      // to protect against CSRF attacks.
      headers: {
        'X-Requested-With': 'XMLHttpRequest'
      },
      contentType: 'application/octet-stream; charset=utf-8',
      success: function(result) {
        // Handle or verify the server response.
      },
      processData: false,
      data: authResult['code']
    });
  } else {
    // There was an error.
  }
}
</script>
  <!-- ... -->
</body>
</html>

Comment puis-je réparer cela?

18

Si cela vous convient, essayez d'ajouter http: // localhost: 8887 à vos origines JavaScript autorisées. A eu cette erreur moi-même à un moment donné et cela a résolu le problème. Sachez que vous devrez également utiliser cette URL pour votre requête, même si elle se traduit par http://127.0.0.1:8887/ .

6
user7191932

J'ai eu un problème très similaire au vôtre. J'ai essayé d'ajouter plusieurs ports sur la liste blanche à partir de localhost et rien ne fonctionnait. Nous avons fini par supprimer les informations d'identification et les configurer à nouveau. Doit avoir été un bug sur la fin des googles pour mon installation.

52
Andrew McOlash

J'ai lu sur plusieurs sites Web que les gens utilisent pour rétablir la création des informations d'identification afin de le faire fonctionner.
Ainsi, j'ai créé un nouveau justificatif d'identité pour le même projet et utilisé mon nouveau user-id et cela a parfaitement fonctionné ... On dirait que l'édition de la liste blanche est un peu flippante ...

Nb: J'ai aussi utilisé localhost au lieu de 127.0.0.1 , les IP ne sont pas valides.

3
vtellier

J'ai tripoté pendant environ 10 minutes, puis tout a finalement fonctionné lorsque j'ai essayé http: // localhost/ dans le navigateur (au lieu de 127.0.0.1)

Ajout de l'URL à chaque endroit où vous pouvez créer des listes blanches à l'adresse suivante: https://console.developers.google.com/apis/credentials/

1
user5886944

"L'origine du client n'est pas valide" semble être trop utilisée par l'API de Google, c'est-à-dire qu'elle est également utilisée de manière trompeuse pour les erreurs d'authentification.

Pour les personnes voyant l'erreur, vérifiez que les informations d'identification sont correctes.

(Cela pourrait expliquer pourquoi cela fonctionne pour certaines personnes après avoir recréé les informations d'identification - dans certains cas, les informations d'identification d'origine n'étaient peut-être pas correctes).

1
mahemoff