Ipad Google API-如何将URL重定向到我的本地主机

Ipad Google API-如何将URL重定向到我的本地主机,ipad,cordova,login,localhost,Ipad,Cordova,Login,Localhost,我正在使用google OAuth将google登录集成到我的Phonegap应用程序中。在为我的应用程序创建客户端ID时,我必须选择“已安装的应用程序”,然后选择应用程序类型为“其他”,因为我使用Phonegap创建应用程序 这给了我两个重定向URI,比如“urn:ietf:wg:oauth:2.0:oob”和“http://localhost”。我不选择使用“urn:ietf:wg:oauth:2.0:oob”,因为它需要用户复制代码并将其放回应用程序。我的另一个选择是重定向到localho

我正在使用google OAuth将google登录集成到我的Phonegap应用程序中。在为我的应用程序创建客户端ID时,我必须选择“已安装的应用程序”,然后选择应用程序类型为“其他”,因为我使用Phonegap创建应用程序

这给了我两个重定向URI,比如“
urn:ietf:wg:oauth:2.0:oob
”和“
http://localhost
”。我不选择使用“
urn:ietf:wg:oauth:2.0:oob
”,因为它需要用户复制代码并将其放回应用程序。我的另一个选择是重定向到localhost

这里的问题是,当我在iPad上时,如何将URL重定向到localhost?我曾尝试使用不同的重定向URI,但谷歌不允许我使用它们。它只支持重定向到localhost(或添加一些端口号),我没有其他选择


有人对此有什么解决办法吗?有什么方法可以完成这项任务吗?我被卡住了。请帮忙

我最近也遇到了同样的问题。我还需要为twitterapi()找到它

对于谷歌,我找到了两种方法来解决这个问题

  • 谷歌将接受本地主机回调url。例如,如果您在xampp服务器上,并且您的重定向保存在
    C:\xampp\htdocs\zzle\callbacks\google.php
    下,那么您提交请求(和)的重定向将是:
    http://localhost/nozzle/callbacks/google.php
    问题已解决
  • 如果您是在vhosted站点上开发的:重定向到一个实时站点(或本地主机文件夹结构中的某个位置)以与google api通信,然后序列化该数据并将其发送到本地虚拟主机上的url
  • 选项2需要更多的解释。以下是分类:

    • 我正在虚拟主机上进行本地开发。我的应用程序数据不在localhost文件夹中(
      http://myapp.dev
      )。因此,我需要另一个解决方案,它允许我在vhost上进行本地开发,但也可以向googleapi发出请求
    • 设置:第一个调用是从发出的,但对于重定向,我使用我的live server地址。在获得用户授权后,Google将重定向回我的live站点,在那里我对api进行了额外的调用。此信息返回(再次返回到我的live站点),然后我通过添加?data=将该信息序列化并重定向到作为请求,并将序列化的数据放在该调用的末尾。然后它被发送到我的vhost站点,我用$_REQUEST['data']检索数据,取消序列化,我就可以开始了
    • 这似乎是一个很大的工作,但对我和我的团队来说,继续在本地工作是值得的,直到我们准备好上线
    另外,我设想您可以通过本地主机地址(而不是活动地址)执行相同的过程,但我还没有对此进行测试。但是,如果您使用一个实时站点,您的整个团队将能够从其本地虚拟主机发出相同的请求,只要他们也在
    http://myapp.dev


    脚注:我正在使用访问Google API。

    您也可以使用重写规则

    例如,我需要Google的回调:
    http://local.dev/users/login-google

    所以我在谷歌控制台中设置了这个URL:
    http://localhost/JUMP/local.dev/users/login-google

    在apache中,一个简单的重定向:

    RewriteEngine  on
    RewriteRule    ^JUMP/(.+)$   http://$1 [R,L]
    

    当您尝试检测浏览器代理(在您的例子中是i Pad)并使用JavaScript重定向时会发生什么?我使用子浏览器来处理iOS和android的所有URL重定向。所以,我对浏览器回调没有任何问题。感谢您的解决方案!太棒了D