我正在使用谷歌的OAuth我PhoneGap的应用程序集成谷歌登录。 什么情况是,在创建我的应用程序客户端ID,我因为我使用PhoneGap的创建我的应用程序,选择“安装的应用程序”,然后应用程序类型为“其他”。
这给了我两个重定向的URI,如“ urn:ietf:wg:oauth:2.0:oob
”和“ http://localhost
”。 我不是那些选择了用“ urn:ietf:wg:oauth:2.0:oob
”,因为它需要用户将代码复制,并把它返回到应用程序。 我有另一种选择是重定向到本地主机。
这里的问题是,我怎么重定向的URL,当我在iPad上到本地主机? 我曾尝试使用不同的重定向的URI,但谷歌并没有让我用他们。 它坚持只使用重定向到本地主机(或增加一些端口号),我没有别的去了。
没有人对此有什么解决方法吗? 是否有任何方法来完成这个任务? 我卡住了。 请帮忙。
您可以使用重写规则了。
例如,我需要这个回调谷歌: http://local.dev/users/login-google
所以,我已在谷歌控制台此网址: http://localhost/JUMP/local.dev/users/login-google
而在Apache中,一个简单的重定向:
RewriteEngine on
RewriteRule ^JUMP/(.+)$ http://$1 [R,L]
最近我有同样的问题。 我还需要弄明白了Twitter的API( 答案在这里找到 )。
对于谷歌,我发现2种方法来解决该问题。
- 谷歌将接受本地主机回调URL。 例如,如果你是一个XAMPP服务器上,而您的重定向下保存的
C:\xampp\htdocs\nozzle\callbacks\google.php
那么你重定向到请求给(和在谷歌API控制台 )将是: http://localhost/nozzle/callbacks/google.php
问题的探析解决。 - 如果你在一个vhosted网站开发 :重定向到一个活的网站(或在本地主机的文件夹结构的地方)与谷歌API来进行沟通,序列化数据并将其发送给您的网址您的本地虚拟主机上。
选项2需要更多的一些解释。 这里的故障:
- 我在虚拟主机上本地开发。 我对我的应用程序数据不在本地主机文件夹(
http://myapp.dev
)。 所以,我需要另一种解决办法,让我仍然在当地发展上的虚拟主机,而且还发出请求谷歌API。 - 该设置:第一个呼叫从制造http://myapp.dev/但对重定向,我用我的直播服务器地址。 当从用户授权,谷歌重定向回我的直播网站,在这里我向API,再调用。 此信息回来(再次到我的生活的网站),然后我序列化信息,并重定向到http://myapp.dev/callback通过添加作为请求?数据=,并把序列化的数据在该通话结束。 然后,它被发送到我的虚拟主机的网站,我retreive用$ _REQUEST [“数据”]数据,反序列化它,我好去。
- 这似乎是一个大量的工作,但对我和我的团队是值得继续在本地工作,直到我们准备去住。
另外,我想你可以通过一个本地主机地址,而不是一个人住一间做同样的过程,但我没有测试过这一点。 但是,如果你有一个活的网站做到这一点,你的整个团队将能够从他们的本地虚拟主机相同的请求,只要它们是在还vhosted http://myapp.dev
脚注:我使用的socialmedia-oauth-login tool
来访问谷歌API。