Вход в 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 и устраните любые подозрительные изменения страниц.