2015-05-05 5 views
3

Я работаю над хром-приложением, которое использует API chrome.identity.launchWebAuthFlow для аутентификации пользователей против их учетной записи Google.Переадресация не работает в chrome.identity

Установка:

  1. Нажатие на кнопку входа в приложение выполняет этот код: chrome.identity.launchWebAuthFlow({'url': <AUTH-URL>, 'interactive': true}, function(redirect_url) { <handle URL here> } });

<AUTH-URL> точки к конечной точке на моем собственном сервере, который перенаправляет https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=http://<APP-ID>.chromiumapp.org/...&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&access_type=offline&approval_prompt=force

Этот поток работал нормально до двух дней назад. Нажатие кнопки откроет окно идентификации хрома, покажет страницу входа в систему Google, а ввод моих учетных данных вызовет функцию обратного вызова.

Это прекратило работать сегодня. Я просто вижу, что сообщение «Авторизация страницы не может быть загружено», как только я нажимаю кнопку входа.

Я попытался установить 5-секундную задержку на сервере (перед перенаправлением), но сообщение «Авторизация страницы не может быть загружено» появляется до 5 секунд.

Любые идеи, что может случиться?

+0

Не могли бы вы предоставить значение 'redirect_url'? – gui47

+0

Привет @Osiris, вам повезло узнать, почему это происходит? У меня такая же проблема с chrome.identity.getAuthToken, она больше не работает без каких-либо изменений. Такое же сообщение об ошибке .. – brian

+0

@brian см. Ответ. Сообщение «Авторизация страницы не может быть загружено» - это общее сообщение, возвращенное API-интерфейсом Chrome в случае возникновения каких-либо ошибок, поэтому я не уверен, ответ на вас применим. – Osiris

ответ

0

Мы, наконец, поняли это после того, как через 2 дня поток входа не работает. На странице, которая была отображена (<AUTH-URL>), был установлен фрагмент Менеджера тегов Google.

Мы недавно обновили это, чтобы включить MixPanel. Это вызывало несколько <script> элементов с атрибутом async, который вводится на страницу. Удаление Mixpanel из GTM решило проблему мгновенно.

Я предполагаю, что это было удалением <script async ...>, который сделал трюк. Это был не просто поток OAuth - простые ссылки <a> тоже не работали.

Смежные вопросы