Используя образец быстрого запуска, предоставленный Google, я смог получить Вход для веб-приложений для работы в Chrome и Firefox. Однако он не работает в Internet Explorer (версия 11.). Он будет регистрировать пользователя в Google, но вызов data-onsuccess
никогда не вызывается. И, как правило, нет никаких уведомлений об ошибках.
Я прочитал связанный вопрос и попробовал предложения по доверенным сайтам. Я также экспериментировал с настройкой, когда IE принимает сторонние файлы cookie, но ничто из этого не работает.
Код тестовой страницы, которую я использую, ниже (минус идентификатор клиента)
<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>
Я также пробовал это с помощью кода, который использует слушатели для прослушивания изменений, как это предложено некоторыми ответами. Я тоже не имел успеха в этом подходе. Снова работает в Chrome/Firefox, но не в IE.
Каждый раз так часто (не все время) я вижу сообщение об ошибке "SCRIPT5: Access is denied" в консоли. Не совсем понятно, почему, но я замечаю, что, когда страница в конечном итоге загружена, некоторые из кода Google находятся в <iframe>
, и мне интересно, является ли это частью проблемы.
Я размещаю приведенную выше тестовую страницу в локальном экземпляре Apache (работает в Windows), и мне интересно, есть ли проблемы с перекрестным доменом, возможно, с кодом в <iframe>
, поступающим из Google.
Я нахожусь в полной утрате на минуту, и я очень хочу знать, удалось ли кому-то заставить это работать с IE. Есть ли какая-то конфигурация, необходимая для IE, чтобы это работало? Существуют ли изменения кода, необходимые для его работы? Или это просто неработоспособно в IE?
Альтернативный вариант, который я могу попробовать, это серверный поток, но я не уверен, что это позволит избежать проблемы, и в идеале я хотел бы использовать подход на стороне клиента.
Любая обратная связь приветствуется. Спасибо.
Изменить: я разместил простую страницу, которая иллюстрирует проблему. Эта страница работает в Chrome, Firefox и Safari. Но сбой при использовании IE (v11).