Подтвердить что ты не робот

Ошибка: invalid_request device_id и имя_устройства необходимы для частного IP-адреса

Я делал свое развитие с помощью API Google Диска, используя [localhost: 8080]. Внезапно я почувствовал, что тестировал его в своей изолированной программной среде локального развертывания, и он имеет IP-адрес как [192.168.1.1:8080]. И в соответствии с этим я изменил учетные данные в URL-адресе обратного вызова клиента консоли разработчика. Я использую OAuth2WebServerFlow, чтобы получить токен обновления, используя согласие пользователя. Затем в будущем я использую токен обновления и OAuth2WebServerFlow для аутентификации пользователя. Но я был удивлен - я получил ошибку:

  • Это ошибка. Ошибка: invalid_request device_id и device_name необходимы для частного IP:

Я не знаю, что происходит или как я могу это исправить. Что происходит, я не понимаю

4b9b3361

Ответ 1

Альтернативой редактированию файла hosts является использование службы "Magic DNS" http://xip.io/ или http://nip.io/ (см. править)

xip.io - это магическое доменное имя, которое предоставляет подстановочный DNS для любого IP-адреса. Укажите IP-адрес вашей локальной сети 10.0.0.1. Используя xip.io,

        10.0.0.1.xip.io   resolves to   10.0.0.1
    www.10.0.0.1.xip.io   resolves to   10.0.0.1
 mysite.10.0.0.1.xip.io   resolves to   10.0.0.1
foo.bar.10.0.0.1.xip.io   resolves to   10.0.0.1

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

В Консоли, если ваш URI перенаправления был (как бы вы ни пожелали, так или иначе):

http://192.168.1.1:8080/auth/google_oath2/callback

Замените его:

http://192.168.1.1.xip.io:8080/auth/google_oath2/callback

"Переадресация URI", похоже, не принимает подстановочные знаки, поэтому весь закрытый ip-xip.io должен быть указан в консоли.

У меня нет связи с xip.io; Я просто довольный пользователь.

2016 Edit: Я слышал сообщения о нестабильности с DNS-серверами xip.io. Существует служба copy-cat nip.io, которая ведет себя точно так же, как и xip.io, но в июле 2016 года nip.io имел 100% -ный коэффициент ответа, а xip.io не сделал.

Ответ 2

При выполнении Oauth-вызовов Google не будет принимать локальный (закрытый) IP-адрес. Мое обходное решение состояло в том, чтобы добавить запись в мой файл хостов Windows для локального IP:

\Windows\System32\drivers\etc

192.168.1.2   fakedomain.com

затем зарегистрируйте fakedomain.com с помощью Google в своей консоли разработчика. Это выглядит как "реальный" домен, но все равно будет разрешен в вашем браузере локальному IP. Я уверен, что аналогичный подход на Mac или Linux также будет работать.

Ответ 3

Я получил ту же ошибку, пока не изменил ее с IP-адреса на доменное имя (192.168.1.113 на localhost в моем случае), поэтому похоже, что Google не принимает голые IP-адреса.

Используйте доменное имя для вашей песочницы или настройте локальный сервер домена, если у вас его нет.

Ответ 4

Изменить: актуально только при локальном развитии.

Хорошо, у меня такая же проблема на моем Mac. После устранения этих проблем проблема

  • Перейдите в консоль разработки Google https://console.developers.google.com/project, выберите учетные данные и измените IP обратного вызова на домен, например http://myflask.com:5000/oauth2callback. В моем случае я использую приложение Flask, поэтому необходим порт 5000.

  • Затем добавьте в свой приватный файл /etc/hosts новую запись, соответствующую указанному имени хоста, вашему ip, например:

  • (пример IP)

    172.1.1.1 myflask.com

    • Дайте Google минуту для обновления ваших учетных данных и посетите ваш сайт на myflask.com:5000

Ответ 5

Стоит отметить, что на Mac вы можете сделать то же самое, отредактировав его как root:

/private/etc/hosts

Добавьте аналогичную строку, как указано выше

192.168.60.10   fakedomain.com

Ответ 6

Измените хосты файлов в \Windows\System32\drivers\etc\hosts

добавить "192.168.1.2 fakedomain.com" в файл hosts перезагрузите окна

Обновить консоль Google 192.168.1.2 для fakedomain.com