Google OAuth - 私有 IP 需要 device_id 和 device_name


Google OAuth - device_id and device_name are required for private IP

我已经看过这个页面和很多其他页面,但都提出了不适合我的解决方案。我有与我提供的链接相同的问题。

我正在尝试使用Google+ API功能,因此用户可以使用Google帐户登录我的页面。

当我redirect_uri本地主机时:

$client->setRedirectUri("https://localhost/...");

一切都奏效了。但后来我把它改成了本地 ip 192.168.1.10 并得到错误(在 url 上 https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2F192.168.1.10......

  1. 这是一个错误。

错误:invalid_request

私有 IP 需要device_id和device_name:

我不知道我该怎么办。我使用 PHP 服务器包装器。我无法更改等/主机,因为我也在移动设备(Android,IPAD)上尝试我的代码。因此,本地IP是必要的,以便在移动设备上对其进行测试。我想避免在某些真实服务器上设置测试页面,因为在 localhost 上测试网页是最快的方法,当仍在开发页面时。

如果您无法更改某些设备的主机文件,我想最好的选择是使用本地DNS服务器来伪造域,就像您在/etc/hosts中对条目所做的那样。这个答案应该可以帮助你:

https://unix.stackexchange.com/a/64944

如果将设备设置为使用计算机作为名称服务器,则应该可以欺骗域并使用此域来测试 oauth2 身份验证。

以下是有关此错误的详细信息:http://developers.blog.box.com/2012/12/19/going-beyond-oauth2-byod-in-the-enterprise/

规格中也提到了device_id和devive_name:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-31#section-3.2.1

Google 在

执行 Oauth 或 API 调用时不接受本地(私有)IP 地址。相反,您可以在 Windows 主机文件中为本地 IP 添加一个条目:'Windows'System32'drivers'etc

192.168.1.10 fakedomain.com

然后使用 fakedomain.com 在谷歌中回调 URI,而不是您的本地 IP 地址。

最后用http://fakedomain.com浏览服务