在Google Developers Console上创建Google API Oauth2.0凭据时,我选择"Web Application"应用程序类型。
在"授权重定向 URI"字段中,我可以使用 http://127.0.0.1/callback,它在本地开发中对我来说效果很好。
但是当我想在我的服务器上使用谷歌API Oauth2.0凭据(假设99.99.99.99)时,我必须使用 http://99.99.99.99/callback 作为我的"授权重定向URI",但谷歌给我一个警告:
无效重定向:http://99.99.99.99/callback 必须以公开结尾 顶级域名(如 .com 或 .org)
除了将公共顶级域绑定到我的服务器,我还能做什么?
我在 Django 中开发并使用 oauth2client 来处理 Google API Oauth2,所以我的数据库中有两个表"oauth2_authentication_credential"、"oauth2_authentication_flowmodel"其中有凭据值,我将它们从我的本地主机复制到 sever,但它不起作用。
"授权重定向 URI"字段附近有帮助文本,明确指出您不能使用公共 IP 地址:
授权的重定向 URI
用于来自 Web 服务器的请求。这 是用户在之后重定向到的应用程序中的路径 他们已经通过谷歌验证了。路径将附加 访问的授权代码。必须有一个协议。不能 包含 URL 片段或相对路径。不能是公共 IP 地址。
127.0.0.1
不是公共 IP,而是环回,这就是 http://127.0.0.1/callback 工作正常的原因。 本地主机也可以使用:http://localhost/callback
除了将公共顶级域绑定到我的服务器,我还能做什么?
您可以通过 http://xip.io/使用免费的 DNS。因此,对于 IP 99.99.99.99
请使用 http://99.99.99.99.xip.io/callback。并且会决心 http://99.99.99.99/callback。