54

我正在尝试设置一个需要用户谷歌纬度信息的网络服务,所以我使用谷歌 OAuth 来获取用户授权信息。

但是,当尝试在 Google API 控制台中为 Web 应用程序客户端 ID 设置重定向 URI 时,如果尝试将其设置为“http://PUBLIC_IP/”,则会收到消息错误。

我需要用非本地用户测试它(因此不能使用 localhost),所以我想知道是否必须有一个 web 域才能使用 Google 的 OAuth。如果没有,我该如何解决这个问题?

4

9 回答 9

56

目前不支持此功能。我提交了功能请求,并将更新进度。

于 2013-01-10T16:20:57.990 回答
52

您可以使用 xip.io 来解决它。

例如:“192.168.0.50.xip.io:3000”将解析为“192.168.0.50:3000”

于 2016-10-12T21:51:48.093 回答
13

我也遇到了这个问题,所以我输入了一个带有 .com 扩展名的 URL,并将其输入到我的/etc/hosts文件中。奇迹般有效。

不过,我的整个应用程序现在必须在一个明显的“实时”域上开发,这完全是糟透了。

于 2013-03-30T18:21:10.637 回答
7

我使用了我的公共主机名。如果您有一个静态 IP 地址,它会有所帮助。我使用http://www.displaymyhostname.com/来获取我的主机名。当我创建一个新的Web Application Client ID时,我将它直接插入Authorized JavaScript origins字段。

PS我的主机名看起来像这样:111.111.111.111.static.exetel.com.au

于 2014-05-07T11:55:35.293 回答
3

您可以使用动态 DNS。我使用了提供免费解决方案的 ddns.net。基本上,您输入您的 FQDN:yourcompany.ddns.net 作为您的域。查找 IP 地址时,.net 域指向 ddns;查找 ddns.net 时,它会在其数据库中查找贵公司,并返回 IP。所以我的看起来像这样:https ://wigwam.ddns.net一切正常。您不需要购买域名,您可以替换您已知的 IP,Google 对此很满意。

当然,您的 IP 必须是静态的。

于 2015-05-15T12:38:11.037 回答
3

是的,到目前为止,您仍然需要拥有一个域名才能在您的应用程序中使用 Google OAuth。如果您有一个静态公共 IP 并且不想购买域名,您可以使用FreeDNS的免费子域链接到您的公共 IP。使用 Django 应用程序对我来说似乎工作得很好。

于 2016-02-22T20:50:09.830 回答
1

呼应布雷诺在回应他之前的评论时所说的话:

抱歉这里没有更新。基本的应用程序验证活动继续使基于 IP 地址的应用程序的支持不太可能。这些验证活动对于防止滥用用户帐户是必要的。此外,自从请求此功能以来,设置专用域的成本已大大降低。请在此处阅读有关可能选项的其他回复。

您可以阅读有关 Google 应用验证要求 [1] 和 Google 要求安全处理数据的政策 [2] 的更多信息。

[1] https://support.google.com/cloud/answer/9110914?hl=en

[2] https://developers.google.com/identity/protocols/oauth2/policies#secure-response-handling

于 2021-03-08T23:54:19.380 回答
1

xip.io 不再起作用,您可以以相同的方式使用 nip.io,例如:
10.0.0.1.nip.io :8000将解析为10.0.0.1:8000

于 2021-09-20T23:23:04.820 回答
-3

尝试使用完整的服务器名称。

它是从 MyPC/Properties 获得的......类似http://mypcname.mydomain.name:8080

于 2014-10-08T23:52:32.617 回答