Вход в Google+ - Неоткрытый SecurityError

Я внедряю гибридный/одноразовый поток аутентификации Google+ в режиме реального времени и испытываю эту ошибку в консоли Chrome JS после подсказок входа и предоставления разрешения на использование приложения, предположительно, когда код Google пытается перезвонить на кнопку

Uncaught SecurityError: Blocked a frame with origin "https://ww2.fa.org" from accessing a frame with origin "https://accounts.google.com". Protocols, domains, and ports must match.

Это не похоже на Safari или IE, и аналогичная ошибка разрешения иногда встречается в Firefox, но чаще всего воспроизводится в Chrome. Обновление кадра с помощью кнопки входа (после выполнения подсказок на стороне Google) обычно приводит к обновленной кнопке "зная", что вход успешно прошел вызов обработчика успеха... он всегда должен работать без обновить, но просто не делает.

Любые мысли? Вход находится в https://ww2.fa.org/gauth/, и он запрашивает только область электронной почты, если вы склонны к просмотру!

Ответ 1

Как я избавился от этого сообщения об ошибке, добавьте https://accounts.google.com в AUTHORIZED JAVASCRIPT ORIGINS в настройках клиента OAuth в консоли Cloud Developers Console в соответствии с API и auth → Credentials.

Обновление

Это на самом деле не исправить, и проблема снова возникла, когда я переключился на gapi.auth.signIn вместо gapi.login.render. Проблема, описанная в комментариях в этом сообщении, заключалась в том, что сериализация атрибута g-oauth-window authResult при отправке его на ваш сервер. Удаление этого параметра или отправка только необходимых вам атрибутов.

var signInCallback = function(authResult) {
  delete authResult['g-oauth-window'];
  ajaxCallToBackend(authResult);
};

Надеюсь, что это поможет.

Ответ 2

Если вы получите ту же ошибку, и вышеупомянутый метод, отправленный Адамом, не сработал для вас (это не сработало для меня) попробуйте метод ниже.

Я преодолел проблему, отключив любые расширения chrome, которые я установил, которые читают и меняют визуализированный HTML, и те, которые переписывают заголовки страниц и вводят JavaScript-код на страницу.

Одним из таких расширений (которое вызывает мою ошибку Blocked a frame with origin "https://apis.google.com" from accessing a frame with origin "https://example.com) было именно эмулятор Ripple (бета-версия) 0.9.15 Разработанный на основе браузера инструмент разработки и тестирования мобильных приложений html5, который "Читает и изменяет все ваши данные на посещаемых вами сайтах", поскольку он указывает в подробностях разрешения расширений.

Другим таким расширением я отключил ModHeader 1.2.4. Измените заголовки запросов, которые также "Читает и изменяет все ваши данные на посещаемых вами сайтах".

Просто ознакомьтесь с расширениями Chrome и устраните любые подозрительные изменения страниц.