错误:私有IP需要invalid_request device_id和device_name
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:私有IP需要invalid_request device_id和device_name相关的知识,希望对你有一定的参考价值。
我正在使用[localhost:8080]使用Google Drive API进行开发。突然,我觉得在我的本地部署沙箱中测试它,它的IP地址为[192.168.1.1:8080]。并且根据我在开发人员控制台客户端回调URL中更改了凭据。我正在使用OAuth2WebServerFlow来获取用户同意的刷新令牌。然后将来我使用刷新令牌和OAuth2WebServerFlow来验证用户。但我很惊讶 - 我得到了错误:
- 那是一个错误。错误:私有IP需要invalid_request device_id和device_name:
我不知道发生了什么或者我该如何解决它。发生了什么,我不明白
编辑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则没有。
在进行Oauth呼叫时,Google不会接受本地(私人)IP地址。我的解决方法是在我的Windows主机文件中为本地IP添加一个条目:
WindowsSystem32driversetc
192.168.1.2 fakedomain.com
然后在他们的开发控制台中向Google注册fakedomain.com
。这对他们来说似乎是一个“真正的”域,但仍会在您的浏览器中解析为本地IP。我确信在Mac或Linux上采用类似的方法也行。
编辑:仅在本地开发时相关。
好的,我在Mac上遇到了同样的问题。以下步骤解决了问题
- 转到您的谷歌开发控制台https://console.developers.google.com/project,选择凭据并将回调IP更改为http://myflask.com:5000/oauth2callback等域。在我的情况下,我使用Flask应用程序,因此需要5000端口。
- 接下来,在您的
private/etc/hosts
文件中添加一个与您的IP匹配上述主机名的新条目,如下所示:# (example IP) 172.1.1.1 myflask.com
- 给Google一分钟更新您的凭据,并访问您的网站http://myflask.com:5000
我得到了同样的错误,直到我将其从IP地址更改为域名(在我的情况下为192.168.1.113到localhost),因此看起来谷歌不会接受裸IP地址。
使用沙箱的域名,或者如果没有沙箱,则设置本地域服务器。
值得注意的是,在Mac上你可以通过编辑root来做同样的事情:
/private/etc/hosts
添加如上所述的类似行
192.168.60.10 fakedomain.com
修改 Windows System32 drivers etc hosts中的文件主机
将“192.168.1.2 fakedomain.com”添加到hosts文件中 重启你的窗户
将谷歌控制台192.168.1.2更新更新到fakedomain.com
以上是关于错误:私有IP需要invalid_request device_id和device_name的主要内容,如果未能解决你的问题,请参考以下文章
来自本地主机的 Google OAuth 引发 invalid_request 错误
Google Sign in API OAuth2 错误:youtube 范围内的“invalid_request”
Oauth 错误 invalid_request:redirect_uri 未列入白名单
错误:invalid_request 缺少必需参数:golang 中的 client_id