Google APi-重定向网址

时间:2018-01-25 16:11:59

标签: google-drive-api google-oauth2

我正在尝试在Google Console APi中为我的项目添加网址http://192.168.137.129:8080/0/rest/cloudAdded作为重定向网址,但不允许保存它。但我想将其用作重定向网址

我有一个在Android应用程序中制作的服务器,我在笔记本电脑的浏览器中访问该服务器。我想在浏览器中打开Goole Drive APi的Google身份验证。所以我想将此网址用作重定向网址

2 个答案:

答案 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)这将提供身份验证码,然后可以将其与新的访问令牌交换。先进之处在于,身份验证代码未存储在远程主机上的某个位置,而是被转发了。