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

问题描述 投票:27回答:6

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

  1. 那是一个错误。错误:私有IP需要invalid_request device_id和device_name:

我不知道发生了什么或者我该如何解决它。发生了什么,我不明白

oauth-2.0 google-drive-api google-oauth
6个回答
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服务器不稳定的报告。有一个copy-cat服务nip.io,其行为与xip.io完全相同,但在2016年7月,nip.io的响应率为100%,而xip.io则没有。


12
投票

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

\Windows\System32\drivers\etc

192.168.1.2   fakedomain.com

然后在他们的开发控制台中向Google注册fakedomain.com。这对他们来说似乎是一个“真正的”域,但仍会在您的浏览器中解析为本地IP。我确信在Mac或Linux上采用类似的方法也行。


3
投票

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

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


2
投票

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

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


1
投票

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

/private/etc/hosts

添加如上所述的类似行

192.168.60.10   fakedomain.com

0
投票

修改\ Windows \ System32 \ drivers \ etc \ hosts中的文件主机

将“192.168.1.2 fakedomain.com”添加到hosts文件中 重启你的窗户

将谷歌控制台192.168.1.2更新更新到fakedomain.com

© www.soinside.com 2019 - 2024. All rights reserved.