我正在尝试设置一个需要用户谷歌纬度信息的网络服务,所以我使用谷歌 OAuth 来获取用户授权信息。
但是,当尝试在 Google API 控制台中为 Web 应用程序客户端 ID 设置重定向 URI 时,如果尝试将其设置为“http://PUBLIC_IP/”,则会收到消息错误。
我需要用非本地用户测试它(因此不能使用 localhost),所以我想知道是否必须有一个 web 域才能使用 Google 的 OAuth。如果没有,我该如何解决这个问题?
我正在尝试设置一个需要用户谷歌纬度信息的网络服务,所以我使用谷歌 OAuth 来获取用户授权信息。
但是,当尝试在 Google API 控制台中为 Web 应用程序客户端 ID 设置重定向 URI 时,如果尝试将其设置为“http://PUBLIC_IP/”,则会收到消息错误。
我需要用非本地用户测试它(因此不能使用 localhost),所以我想知道是否必须有一个 web 域才能使用 Google 的 OAuth。如果没有,我该如何解决这个问题?
目前不支持此功能。我提交了功能请求,并将更新进度。
您可以使用 xip.io 来解决它。
例如:“192.168.0.50.xip.io:3000”将解析为“192.168.0.50:3000”
我也遇到了这个问题,所以我输入了一个带有 .com 扩展名的 URL,并将其输入到我的/etc/hosts
文件中。奇迹般有效。
不过,我的整个应用程序现在必须在一个明显的“实时”域上开发,这完全是糟透了。
我使用了我的公共主机名。如果您有一个静态 IP 地址,它会有所帮助。我使用http://www.displaymyhostname.com/来获取我的主机名。当我创建一个新的Web Application Client ID时,我将它直接插入Authorized JavaScript origins字段。
PS我的主机名看起来像这样:111.111.111.111.static.exetel.com.au
您可以使用动态 DNS。我使用了提供免费解决方案的 ddns.net。基本上,您输入您的 FQDN:yourcompany.ddns.net 作为您的域。查找 IP 地址时,.net 域指向 ddns;查找 ddns.net 时,它会在其数据库中查找贵公司,并返回 IP。所以我的看起来像这样:https ://wigwam.ddns.net一切正常。您不需要购买域名,您可以替换您已知的 IP,Google 对此很满意。
当然,您的 IP 必须是静态的。
是的,到目前为止,您仍然需要拥有一个域名才能在您的应用程序中使用 Google OAuth。如果您有一个静态公共 IP 并且不想购买域名,您可以使用FreeDNS的免费子域链接到您的公共 IP。使用 Django 应用程序对我来说似乎工作得很好。
呼应布雷诺在回应他之前的评论时所说的话:
抱歉这里没有更新。基本的应用程序验证活动继续使基于 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。
xip.io 不再起作用,您可以以相同的方式使用 nip.io,例如:
10.0.0.1.nip.io :8000将解析为10.0.0.1:8000
尝试使用完整的服务器名称。
它是从 MyPC/Properties 获得的......类似http://mypcname.mydomain.name:8080