web-dev-qa-db-de.com

Fehler: invalid_request device_id und device_name sind für die private IP erforderlich

Ich habe meine Entwicklung mit der Google Drive API mit [localhost: 8080] durchgeführt. Plötzlich wollte ich es in meiner lokalen Deployment-Sandbox testen und hatte die IP-Adresse als [192.168.1.1:8080]. Und in dieser Hinsicht habe ich die Anmeldeinformationen in der Rückruf-URL der Entwicklerkonsole geändert. Ich verwende OAuth2WebServerFlow, um das Aktualisierungstoken mithilfe der Benutzereinwilligung abzurufen. In Zukunft verwende ich dann das Aktualisierungstoken und OAuth2WebServerFlow, um den Benutzer zu authentifizieren. Aber ich war überrascht - ich habe den Fehler bekommen:

  1. Dies ist ein Fehler . Fehler: invalid_request Device_id und device_name sind für die private IP erforderlich: 

Ich weiß nicht, was passiert oder wie kann ich das beheben? Was ist los, verstehe ich nicht

26

Eine Alternative zum Bearbeiten einer hosts-Datei ist die Verwendung des "Magic DNS" -Dienstes http://xip.io/ oder http://nip.io/ (siehe Bearbeiten).

xip.io ist ein magischer Domänenname, der Platzhalter-DNS für jede IP-Adresse bereitstellt. Ihre LAN-IP-Adresse lautet 10.0.0.1. Mit 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

Mit diesem Dienst können Sie eine öffentlich aussehende Domäne angeben, die in eine private Adresse aufgelöst wird.

Wenn Ihre Umleitungs-URI in der Konsole war (was Sie sich gewünscht hätten):

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

Ersetzen Sie es mit:

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

"Redirect URIs" scheint keine Platzhalterzeichen zu akzeptieren, daher muss das gesamte private ip-xip.io in der Konsole angegeben werden.

Ich habe keine Zugehörigkeit zu xip.io; Ich bin nur ein zufriedener Benutzer.

Edit: Ich habe Berichte über Instabilität mit den xip.io-DNS-Servern gehört. Es gibt einen Kopierservice nip.io, der sich genau wie xip.io verhält, aber im Juli 2016 hatte nip.io eine Antwortrate von 100%, während xip.io dies nicht tat.

32
whitehat101

Bei Oauth-Anrufen akzeptiert Google keine lokale (private) IP-Adresse. Mein Workaround bestand darin, einen Eintrag in meine Windows-Hosts-Datei für die lokale IP-Adresse hinzuzufügen:

\Windows\System32\drivers\etc

192.168.1.2   fakedomain.com

dann registrieren Sie fakedomain.com bei Google in der Dev-Konsole. Diese erscheint ihnen als "echte" Domäne, löst jedoch in Ihrem Browser immer noch die lokale IP auf. Ich bin mir sicher, dass ein ähnlicher Ansatz auf Mac oder Linux auch funktionieren würde.

12
Josh Diehl

Edit: Nur relevant bei lokaler Entwicklung.

Ok, ich habe das gleiche Problem auf meinem Mac. Die folgenden Schritte haben das Problem behoben

  • Gehen Sie zu Ihrer Google-Entwicklungskonsole https://console.developers.google.com/project , wählen Sie die Anmeldeinformationen aus und ändern Sie die Callback-IP in eine Domäne wie http://myflask.com:5000/oauth2callback In meinem Fall verwende ich eine Flask-Anwendung, daher ist der 5000-Port erforderlich.

  • Als nächstes fügen Sie Ihrer private/etc/hosts-Datei einen neuen Eintrag hinzu, der mit dem obigen Hostnamen in Ihre IP-Adresse passt.

    # (example IP)
    172.1.1.1 myflask.com
    
  • Geben Sie Google eine Minute, um Ihre Anmeldeinformationen zu aktualisieren, und besuchen Sie Ihre Website unter http://myflask.com:5000 .

3
philmaweb

Ich habe dieselbe Fehlermeldung erhalten, bis ich sie von einer IP-Adresse in einen Domainnamen geändert habe (192.168.1.113 in localhost in meinem Fall), so dass es so aussieht, als würde Google keine leeren IP-Adressen akzeptieren. 

Verwenden Sie einen Domainnamen für Ihre Sandbox oder richten Sie einen lokalen Domain-Server ein, falls Sie keinen haben.

2
Mikee

Beachten Sie, dass Sie auf einem Mac dasselbe tun können, indem Sie als root bearbeiten:

/private/etc/hosts

Fügen Sie eine ähnliche Zeile wie oben erwähnt hinzu

192.168.60.10   fakedomain.com
1
ejvaudio

Ändern Sie Ihre Datei-Hosts unter\Windows\System32\drivers\etc\hosts

fügen Sie "192.168.1.2 fakedomain.com" zur hosts-Datei hinzu 
Starten Sie Ihre Fenster neu

Aktualisieren Sie das Update der Google Console 192.168.1.2 auf fakedomain.com

0
brew