【发布时间】:2012-07-05 01:34:55
【问题描述】:
我正在使用 Google Maps API 制作应用程序。我希望能够让一个人在电脑上,观看另一个人在地图上编辑的内容。我正在考虑将地图信息传递给 Google Fusion Table。其他人将能够将所有内容视为一个图层。我希望程序只在用户的浏览器中运行,而不是为它建立网站。
要编辑融合表,我需要获得访问权/令牌。我目前正在尝试使用这些 JavaScript 来完成此操作。 ScriptSample.html、oauthWindow.html 和 gwt-oauth2.js。这是working example。
当我运行它们时,我收到一条错误消息,指出 redirect URI 不正确。它说我用来重定向的文件没有权限。我的第一个明显问题是:
如何授予该文件重定向权限?
在我的 API 控制台中,我将其设置为客户端 Web 应用程序。我应该将其更改为已安装的应用程序吗?
目前我有以下设置:
- 我的 JavaScript 来源是:
https://localhost - 重定向 URI:
https://localhost/oauthWindow.html
谢谢
【问题讨论】:
-
您是否认真使用基于 localhost 的回调 URI?这意味着OAuth服务器应该将响应发送给自己,这是没有意义的。您绝对应该使用一些可从外部网络访问的 URL。
-
对不起,我错了,我必须纠正自己。回调 URI 仅用于使用授权结果重定向浏览器,因此基于 localhost 的回调 URI 理论上可以工作。另一方面,它存在严重的安全问题,使得整个回调 URI 检查方法毫无意义。因此,您仍然应该提供一个外部可访问的回调。
-
我也有这个问题。由于某些超级奇怪的原因,谷歌决定将我的重定向网址
https://something转换为http://something。这太可怕了,因为我的服务器对 ssl/https 有严格的要求,没有例外。 -
@ZólyomiIstván 重定向到 localhost 是 google 建议为已安装应用程序设置 OAuth 流程的方式。在谷歌自己的 Python OAuth2 库中,这就是他们在 tools.py 模块中实现“flow_from_client_secrets()”方法的方式。
-
这里似乎有很多误解。使用环回 127.0.0.1 地址是使用 OAuth 集成的桌面应用程序的常见做法。显然,OAuth 后端服务器不会与此 IP 地址通信,但 Web 浏览器会使用客户端脚本。这意味着,在计算机上,有人运行一个桌面应用程序,该应用程序启动一个指向 some-oauth-login-page?redirect_uri=http://127.0.0.1:4444 之类的 Web 浏览器。这将显示用于登录的 UI,登录后,浏览器将重定向到 127.0.0.1:4444 并传递激活码或类似信息。
标签: google-maps-api-3 oauth-2.0 google-fusion-tables