私有IP需要Google OAuth - device_id和device_name

时间:2014-11-20 17:16:55

标签: php oauth-2.0 google-api google-oauth google-api-php-client

我看过this页面和其他很多页面,但所有提议的解决方案都不适合我。我遇到的问题与我提供的链接相同。

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

当我有redirect_uri到localhost时:

$client->setRedirectUri("https://localhost/...");
一切顺利。但后来我将其更改为本地IP 192.168.1.10并收到错误(在网址https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2F192.168.1.10......上。)

  
      
  1. 这是一个错误。
  2.         

    错误:invalid_request

         私有IP需要

    device_id和device_name:

我不知道该怎么办。 I use PHP server wrappers. 我无法更改etc / hosts,因为我也在移动设备上尝试我的代码(Android,IPAD)。因此,本地IP是必要的,以便在Mobile上进行测试。我想避免在某些真实服务器上设置测试页面,因为在开发页面时,在localhost上测试网页是最快的方法。

2 个答案:

答案 0 :(得分:2)

如果您无法更改某些设备的主机文件,我猜您最好的办法是使用本地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:http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-3.2.1

答案 1 :(得分:0)

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

192.168.1.10 fakedomain.com

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

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