Error: invalid_request device_id and device_name are required for private IP

google-drive-api, google-oauth, oauth-2.0

Solution

An alternative to editing a `hosts` file is to use the "Magic DNS" service https://nip.io/

nip.io is a magic domain name that provides wildcard DNS for any IP address. Say your LAN IP address is 10.0.0.1:

         10.0.0.1.nip.io   resolves to   10.0.0.1      (dot syntax)
    192-168-1-250.nip.io   resolves to   192.168.1.250 (dash syntax)
         0a000803.nip.io   resolves to   10.0.8.3      (hex syntax)
 foo.bar.10.0.0.1.nip.io   resolves to   10.0.0.1      (subdomains)
app-192-168-1-250.nip.io   resolves to   192.168.1.250 (prefixes)

With this service, you can specify a public-looking domain that resolves to a private address.

In the Console, if your Redirect URI was (what you wish you had anyways):

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

Replace it with:

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

"Redirect URIs" does not seem to accept wildcards, so the entire private ip-xip.io needs to be specified in the console.

Problem

I was doing my development with Google Drive API using [localhost:8080]. Suddenly I felt to test it in my local deployment sandbox and it has IP address as [192.168.1.1:8080]. And as per that I changed the credential in developer console client callback URL. I am using OAuth2WebServerFlow to get the refresh token using user consent. Then in future I am using the refresh token and OAuth2WebServerFlow to authenticate the user. But I was surprised - I got the error: - That’s an error. Error: invalid_request device_id and device_name are required for private IP: I don't know what is happening or how can I fix it. What is going on, I don't understand

Original source

Related problems