Аутентификация Google API: недействительный источник для клиента

При выполнении запроса аутентификации к Google API (gapi) он возвращает false в checkOrigin.

Я удалил любой идентификатор клиента или что-либо, что могло бы напрямую связываться с моей учетной записью, и заменил его регулярным выражением, указывающим, какие данные предназначены для справки.

URL: https://accounts.google.com/o/oauth2/iframerpc?action=checkOrigin&origin=https%3A%2F%2Flocal.tools&client_id=(\d{21})

Мой исходный URL-адрес - это локальный URL-адрес, равный https://local.tools

Результат: {valid: false}

Я использую приведенный здесь пример без отклонений (за исключением замены clientid моим 21-значным clientid): https://ga-dev-tools.appspot.com/embed-api/third-party-visualizations/

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


person Francis Lewis    schedule 02.03.2017    source источник
comment
и local.tools deffo настроен в консоли API, а ваш локальный сервер работает на порту 80? Попробуйте отредактировать / etc / hosts, указав URL-адрес демонстрационного сайта 127.0.0.1, и посмотрите, что произойдет.   -  person pinoyyid    schedule 07.03.2017
comment
Ничего хорошего не произойдет, потому что моя среда разработки не на 127.0.0.1. Также не имеет значения, на каком порту он работает. Его можно использовать на других портах, кроме порта 80.   -  person Francis Lewis    schedule 20.03.2017
comment
Аутентификация Google API: недействительный источник для клиента. --- Это может быть в случае, если вы используете один и тот же адрес электронной почты для создания идентификатора клиента и для входа через веб-страницу   -  person Sahil Mujawar    schedule 09.10.2020


Ответы (13)


При работе с этим примером я получил такое же сообщение об ошибке консоли: https://developers.google.com/analytics/devguides/reporting/embed/v1/getting-started

В документации говорится, что нельзя упускать из виду два важных шага («При выполнении инструкций важно не упускать из виду эти два важных шага: включить Analytics API [&] Установить правильное происхождение»), но четко не указано, ГДЕ нужно установить правильное происхождение.

Поскольку мой идентификатор клиента не работал, я создал новый проект и новый идентификатор клиента. Возможно, в новом проекте не было необходимости, но я сохраняю (и использую) его.

Вот что сработало:

Во время создания учетных данных вы увидите раздел под названием «Ограничения: введите источники JavaScript, URI перенаправления или и то, и другое». Здесь вы можете войти в свое происхождение.

Сохраните и скопируйте свой идентификатор клиента (и секрет).

Мой сценарий работал после того, как я создал новые учетные данные OAUTH, назначил источник и использовал вновь созданный идентификатор клиента после этого процесса.

person designdit    schedule 06.03.2017
comment
Да, это было то, что мне было нужно. Спасибо! Кажется, теперь это должно быть очевидно, но за документами трудно следовать. - person Francis Lewis; 09.03.2017
comment
если я тестирую с локальным хостом, как я могу добавить туда oauth? например, если мне нужно разрешить доступ к localhost: 9000 / en / login - person rosu alin; 15.03.2017
comment
Вам не нужно беспокоиться об обратном вызове oAuth. Когда вы используете приведенный пример, есть маленькая кнопка, которая говорит что-то вроде google Authenticate или я не помню. Но он там, и вы нажимаете на него, и появляется всплывающее окно для аутентификации. Мне нужно было добавить мой домен в источник, в том числе после загрузки примера на сервер. Мне пришлось добавить URL-адрес сервера в исходные домены. - person Francis Lewis; 20.03.2017
comment
Мой сценарий работал с новыми учетными данными в старом приложении. Я считаю, что это ошибка Google, потому что я пытался добавить свое происхождение к своим старым учетным данным. - person Franklin Yu; 05.07.2017
comment
Была такая же проблема, и эти шаги сработали для меня! Хитрость заключалась в том, чтобы включить Analytics API перед созданием учетных данных. - person Sahan Serasinghe; 03.08.2017
comment
В моем случае это был тип OAuth, который нужно было исправить - person Arman Fatahi; 28.05.2018
comment
Год за годом я все время возвращаюсь к этому ответу. Ничего не работает - ›Удалить приложение -› Создать новое приложение с доменом, добавленным в белый список - ›Работает. Я имею в виду, я понимаю, вы пробовали выключить и снова включить это мем по какой-то причине. Но невероятно расстраивает то, что Google просто отказывается улучшать эти услуги, и нет никакого способа связаться с реальным полезным специалистом службы поддержки вместо обычного чат-бота. Ну что ж. Думаю, увидимся здесь в 2021 году. - person Andrew; 25.02.2020
comment
Убедитесь, что вы добавили URI при создании учетных данных, а не после. - person Victor Michael Kosgei; 07.07.2020
comment
Похоже, 2021 год хуже: установка, которая работала раньше, теперь не работает. Похоже, вы больше не можете вводить localhost origin. Это говорит о недопустимом происхождении - person Fabien Quatravaux; 08.02.2021

Очистите кеш браузера. Начала получать эту ошибку в Chrome, а затем я создал новый идентификатор клиента, но проблема все еще возникала. Открыл firefox, и он сработал, поэтому я очистил кеш в Chrome, и он начал работать.

person iamcootis    schedule 25.01.2018
comment
Не могу поверить, что кеш играет в этом такую ​​большую роль. - person Adarsh Khatri; 07.08.2018
comment
У меня была такая проблема в сафари iOS. Источник был принят в Chrome на iOS, но не обновлен в Safari. Я надеюсь, что рано или поздно он истечет. - person Simon_Weaver; 10.12.2018
comment
Или сделайте перерыв на час или около того. Особенно, если на устройстве, где вы не хотите очищать весь кеш, или на мобильном устройстве, где это сделать сложнее. - person Simon_Weaver; 10.12.2018
comment
Как ни удивительно, очистка кеша браузера на самом деле решила и для меня эту проблему ... - person dorian; 11.12.2018
comment
Идеально! У меня работает после очистки кеша, большое спасибо. - person Mohan; 05.01.2019
comment
У меня тоже была эта пробема. Если вы перейдете к настройкам инструментов разработчика в Chrome, есть возможность отключить кеш, когда инструмент разработчика открыт. - person www139; 24.01.2020
comment
Обожаю, когда решение всех моих проблем - очистка кеша :) - person Sajad Torkamani; 11.04.2020
comment
Должен любить, когда вы сомневаетесь в своем коде и здравомыслии, но все, что вам нужно сделать, это очистить кеш. БЛАГОДАРЮ ВАС! - person Maxim P; 16.06.2020
comment
Просто совет на случай, если вы не хотите терять все свои файлы cookie, историю и т. Д. В Chrome вы можете войти как другой пользователь - так что просто войдите как гость, чтобы вам не пришлось удалять всю историю просмотров. - person Guy Nir; 08.07.2021

попробуйте очистить кеши, а затем выполнить жесткую перезагрузку, у меня была такая же ошибка, но когда я попытался запустить браузер в режиме инкогнито в Chrome, это сработало.

person Salman Saleem    schedule 06.08.2018
comment
Стоит отметить, что обычное жесткое обновление со сдвигом f5 или ctrl f5 не помогло в Chrome до тех пор, пока я не нажал F12, чтобы открыть вкладку консоли, затем щелкнул правой кнопкой мыши на Обновить и выбрал Очистить кеш и Жесткая перезагрузка - person RJFares; 10.05.2020

Учетные данные не работают, если API не включен. В моем случае потребовались следующие шаги:

  1. Перейдите на страницу https://console.developers.google.com/apis/library.
  2. Введите "Люди"
  3. В результате выберите "Google People API".
  4. Нажмите "Включить".
person TitanFighter    schedule 06.01.2018
comment
Это спасло мне день .. !!! Ошибка кажется совершенно не связанной, но это сработало - person Clain Dsilva; 26.03.2019

Для меня - я просто зашел сюда:

https://console.developers.google.com/apis/credentials

Затем выбрали правильный проект; затем выберите учетные данные с тем же идентификатором, который указан в сообщении об ошибке консоли. При редактировании учетных данных вы можете добавить несколько источников в белый список.

person Reece    schedule 26.07.2017
comment
Хорошо, это правильный ответ для нового адреса клиента - person Lucas Andrade; 17.04.2021

Ключевой момент: добавьте как http://localhost, так и http://localhost:port_number в поле" Авторизованные источники JavaScript "для локальных тестов или разработки.

person walter    schedule 09.05.2020
comment
Привет - где это установить? - person Steve Tomlin; 08.12.2020
comment
comment
Это сработало для меня. Изначально я указывал только localhost: port. Как только я добавил localhost (без порта) вместе с хостом с портом, он сразу же начал работать. - person JoshKraker; 19.03.2021
comment
То же самое, большое спасибо - person kinduff; 24.06.2021

Создание новых учетных данных oauth сработало для меня

person sudharsan tk    schedule 13.12.2018
comment
До того, как я заглянул в SO, я подумал, может быть, это кеш ... после удаления кеша не сработало, это решение сработало. - person Hagai Wild; 07.06.2020

очистка кеша у меня работает.

для разработчиков React попробуйте перезапустить проект, иначе он будет показывать одну и ту же ошибку снова и снова.

person zacknight95    schedule 20.11.2020

Я получил ошибку из-за Allow-Control-Allow-Origin: * расширение для браузера.

person Der_Meister    schedule 22.11.2018

Если вы запускаете его на локальном хосте, измените порт на 5000, и он исправит его.

person VardanMelkonyan    schedule 22.06.2020

Попытка использовать другой браузер (хром) сработала для меня, а очистка кеша в firefox устранила проблему.

(PS: не добавлять URI хостинга к авторизованным источникам JavaScript в учетных данных API, это приведет к ошибке: redirect_uri_mismatch)

person sandy    schedule 25.07.2020

Это была проблема политики реферера.

Для меня это тоже долгое время было такой болью ...

Обнаружил проблему, мой экземпляр веб-сайта имел политику реферера, установленную на отсутствие реферера. После установки для него значения no-referrer-when-downgrade приглашение One Tap появилось, как и ожидалось.

https://stackoverflow.com/a/63039142/15565029

Если вы используете Django, SECURE_REFERRER_POLICY по умолчанию имеет одинаковое происхождение. Измените его, добавив приведенный ниже код в свой файл настроек.

# settings.py
SECURE_REFERRER_POLICY = 'no-referrer-when-downgrade' 

https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-SECURE_REFERRER_POLICY

person David    schedule 04.05.2021

Подобно нескольким ответам выше, но со скриншотами. Если вы создали проект для Firebase, можете также использовать те же шаги для настройки в консоли Google Cloud Platform.

  1. Выберите проект на https://console.cloud.google.com/.
  2. Перейти к учетным данным
  3. Нажмите кнопку "Изменить" для соответствующего идентификатора клиента OAuth 2.0.
  4. Добавить URI в авторизованные источники JavaScript
  5. Не забудьте сохранить

введите описание изображения здесь

введите описание изображения здесь

person Lee Chee Kiam    schedule 19.05.2021