我正在尝试在Google Console APi中为我的项目添加网址http://192.168.137.129:8080/0/rest/cloudAdded作为重定向网址,但不允许保存它。但我想将其用作重定向网址
我有一个在Android应用程序中制作的服务器,我在笔记本电脑的浏览器中访问该服务器。我想在浏览器中打开Goole Drive APi的Google身份验证。所以我想将此网址用作重定向网址
答案 0 :(得分:1)
我在Google API的测试项目中尝试了您的URI并发现了此错误:
无效重定向:http://192.168.137.129:8080/0/rest/cloudAdded必须以公共顶级域名(例如.com或.org)结尾
换句话说,Google错误消息表示您无法在授权重定向URI中使用IP地址。您需要为您的应用使用公开托管的域名。
如果您使用此服务器进行测试或开发,则有一个非常有用的技巧。我建议使用xip.io来解决您的问题。它是一种自定义DNS服务,可让您将任意域名映射到所需的IP地址。在这种情况下,它将解决您的问题
因此,对于开发,请尝试使用http://192.168.137.129.xip.io:8080/0/rest/cloudAdded
作为授权重定向URI。 Google接受它是因为它使用公共域名。您的应用应该喜欢它,因为DNS映射到其IP地址。
答案 1 :(得分:0)
一个人可以解决FQDN
的要求...
a)通过将重定向URL设置为具有FQDN
域名的公共可用资源(公共IP);本示例使用与https://api.acme.com/drive/redirect
类似的重定向URL。拥有任何FQDN
是前提;因为没有其他输入(如果在开发和生产环境中需要重定向URL,则可以在其中添加两个重定向URL)。
b),然后将此重写规则添加到Web根目录中的.htaccess
文件中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# dispatch oAuth2 postbacks to localhost
RewriteCond %{REQUEST_URI} ^/drive/redirect(/|)$ [NC]
RewriteCond %{QUERY_STRING} ^code=(.*)&scope=(.*)$ [NC]
RewriteRule ^(.*) http://localhost:8080 [QSA,L]
</IfModule>
c)这将提供身份验证码,然后可以将其与新的访问令牌交换。先进之处在于,身份验证代码未存储在远程主机上的某个位置,而是被转发了。