Google se connecte pour les applications Web qui ne fonctionnent pas avec Internet Explorer

en utilisant le quick start sample fourni par Google j'ai été en mesure de se connecter pour les applications Web pour travailler dans Chrome et Firefox. Cependant, il échoue sur Internet Explorer (version 11.) Il va connecter L'utilisateur dans Google, mais le rappel data-onsuccess n'est jamais appelé. Et il n'y a généralement aucune notification d'erreurs.

j'ai lu un question connexe et j'ai essayé les suggestions autour des Sites de confiance. J'ai aussi expérimenté avec l'ajustement quand IE accepte les cookies tiers, mais rien de cela ne semble fonctionner.

le code de la page test que j'utilise est ci-dessous (moins le code client)

<html>
<head>
<meta charset="ISO-8859-1">
<title>Google Sign In</title>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="CLIENT_ID_FROM_GOOGLE_HERE">
<script>

function onSignIn(googleUser) {
    var profile = googleUser.getBasicProfile();
    console.log('ID: ' + profile.getId());
    console.log('Name: ' + profile.getName());
    console.log('Image URL: ' + profile.getImageUrl());
    console.log('Email: ' + profile.getEmail());
}

function signOut() {
    console.log(document);

    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut().then(function () {
        console.log('User signed out.');
    });
}
</script>
</head>

<body>
<h1>Login</h1>
<p>
This is a simple page to test Google Sign In IE
</p>

<div class="g-signin2" data-onsuccess="onSignIn">
   Sign In Button Rendered Here
</div>

<div>
    <a href="#" onclick="signOut();">Sign out</a>
</div>
</body>
</html>

j'ai également essayé avec le code qui utilise les auditeurs pour écouter les changements, comme suggéré par certains réponses . Je n'ai pas eu de succès avec cette démarche. Fonctionne à nouveau dans Chrome / Firefox mais pas dans IE.

de temps en temps (pas tout le temps) je vois un message d'erreur "SCRIPT5: L'accès est refusé" dans la Console. Je ne sais pas exactement pourquoi, mais je remarque que lorsque la page est finalement chargée une partie du code Google est dans un <iframe> et je me demande si cela fait partie du problème.

j'héberge la page test ci-dessus sur une instance locale D'Apache (fonctionnant sous Windows) et je me demande s'il y a des problèmes de domaine peut-être avec le code dans le <iframe> venant de Google.

je suis à une perte complète à la minute et je suis impatient de savoir si quelqu'un a réussi à faire en sorte que cela fonctionne avec IE. Y a-t-il une configuration nécessaire à IE pour permettre à cela de fonctionner? Le code doit-il être modifié pour qu'il fonctionne? Ou est-ce simplement inapplicable dans IE?

une alternative que je peux essayer est le server side flow cependant je ne suis pas sûr si cela évite le problème et idéalement je voudrais utiliser l'approche côté client.

toute rétroaction est appréciée. Remercier.

Edit: j'ai hébergé une page simple qui illustre le problème. Cette page fonctionne en Chrome, Firefox, et Safari. Mais il échoue quand IE (v11) est utilisé.

22
demandé sur gerry3 2015-07-18 21:24:57

5 réponses

Google Identité de l'équipe fixé ce, en novembre . Si vous continuez à voir des problèmes sur la démo JavaScript hébergée à GitHub , s'il vous plaît report and issue .

vous pouvez vérifier les démos suivantes pour voir le travail d'échantillon sur Edge / IE11:

3
répondu class 2016-08-04 22:17:20

j'ai utilisé sign in et ça a marché pour moi ..

enter image description here

voici ma version IE:

enter image description here

0
répondu Aakash Shah 2015-08-18 08:31:44

essayez de charger vos scripts depuis un autre endroit que google. Selon cette Question ( empêcher "SCRIPT5: L'accès est refusé" erreur dans IE ) que "SCRIPT5: L'accès est refusé. "il s'agit d'un moyen de Ms est de" protéger l'utilisateur contre les attaques de type XSS.

alors, essayez de télécharger https://apis.google.com/js/platform.js et utilisez-le pour former votre serveur local à la place.

0
répondu Juan 2017-05-23 12:19:19

y a-t-il eu de nouvelles idées à ce sujet? Je vois aussi le même problème en essayant d'utiliser les méthodes g-signin2. J'utilise l'ancien s-gignin sans problème en ce moment sur tous les navigateurs.

curieusement, cela fonctionne pour moi sur un navigateur IE10, mais pas sur IE11 ou Edge

0
répondu rfischman 2015-08-19 13:42:24

lors de l'exécution dans localhost, si vous ajoutez le numéro de formulaire à votre formulaire dans la page de connexion, il ne sera pas traiter après connexion via le bouton de connexion Google. Même le statut de connexion ne sera pas changé en "signé" sur le bouton de connexion Google. Mais cela peut être résolu en lançant la page sur le serveur Public, puisque IE a la fonctionnalité de restreindre les scripts tout en exécutant localement.

0
répondu Usmin S 2016-09-08 12:33:13