错误:私有IP需要invalid_request device_id和device_name

时间:2014-07-14 12:04:14

标签: oauth-2.0 google-drive-api google-oauth

我正在使用[localhost:8080]使用Google Drive API进行开发。突然,我觉得在我的本地部署沙箱中测试它,它的IP地址为[192.168.1.1:8080]。并且根据我在开发人员控制台客户端回调URL中更改了凭据。我正在使用OAuth2WebServerFlow来获取用户同意的刷新令牌。然后将来我使用刷新令牌和OAuth2WebServerFlow来验证用户。但我很惊讶 - 我得到了错误:

  1. 这是一个错误。 错误:invalid_request 私有IP需要device_id和device_name:
  2. 我不知道发生了什么或者我该如何解决它。发生了什么,我不明白

5 个答案:

答案 0 :(得分:33)

编辑hosts文件的另一种方法是使用" Magic DNS"服务http://xip.io/http://nip.io/(请参阅编辑)

  

xip.io是一个神奇的域名,可为任何IP地址提供通配符DNS。您的LAN 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编辑:我已经听说过有关xip.io DNS服务器不稳定的报告。有一个复制猫服务 nip.io ,其行为与xip.io完全相同,但在2016年7月, nip.io的响应率为100%,而xip .io没有。

答案 1 :(得分:12)

Google在进行Oauth通话时不会接受本地(私人)IP地址。我的解决方法是在我的Windows主机文件中为本地IP添加一个条目:

\Windows\System32\drivers\etc

192.168.1.2   fakedomain.com

然后在他们的开发控制台中向Google注册fakedomain.com。这似乎是一个真实的"域名给他们,但仍会在您的浏览器中解析为本地IP。我确信Mac或Linux上的类似方法也可以。

答案 2 :(得分:3)

编辑:仅在本地开发时相关。

好的,我在Mac上遇到了同样的问题。以下步骤解决了问题

答案 3 :(得分:2)

我得到了同样的错误,直到我将其从IP地址更改为域名(在我的情况下为192.168.1.113到localhost),因此看起来谷歌不会接受裸IP地址。

使用沙箱的域名,或者如果没有沙箱,则设置本地域名服务器。

答案 4 :(得分:1)

值得注意的是,在Mac上你可以通过编辑root来做同样的事情:

/private/etc/hosts

添加如上所述的类似行

192.168.60.10   fakedomain.com