【问题标题】:How to access Google Drive document contents through https from a Rails app hosted on Heroku?如何通过 https 从 Heroku 上托管的 Rails 应用程序访问 Google Drive 文档内容?
【发布时间】:2013-04-25 23:55:01
【问题描述】:

我有一个在 Heroku 上托管的 Rails 应用程序 (https://github.com/ddelruss/loops)。它使用 Rails 表单收集用户的 Google id、密码和文档 ID,用于登录 Google 驱动器、下载文档内容并呈现为 D3 可视化。一切正常 - 测试您是否愿意(并相信当前的安全性):

http://young-eyrie-4632.herokuapp.com/

您可以使用公开的演示文档密钥: 0AtOGnLq8Mf_ydGtmMmI5UjhEUmlqQ0d6UHFVaWN2TWc

不存储任何用户信息,因为我希望尽可能确保网站安全。缺陷是该站点当前是通过 http 访问的,我理解这意味着用户凭据是从 web 表单发送到未加密的 Heroku/Rails 的。

所以,我想通过 https 访问应用程序,Heroku 通过 ssl 捎带支持。实际上,该站点使用 https:// 加载,并将呈现可视化页面。问题是 Google 文档没有返回任何结果。登录成功,没有应用程序错误(根据 heroku 日志)...只是结果为空。

我可以做些什么来让我的应用程序通过 https 运行,包括从 Google 驱动器文档中获取结果?请注意,我不需要两者 - 如果 https 有效,我可以禁用 http 访问。

谢谢,

达米安

【问题讨论】:

    标签: ruby-on-rails heroku https google-drive-api


    【解决方案1】:

    我使用演示文档和带有 http 和 https 的 Hierarchy 选项运行您的应用程序,从查看 HTML 来看,内容似乎在这两种情况下都存在,但在 https 的情况下不显示。也就是说,我相信 Google 正在正确返回文档。

    我没有对这两种情况下生成的 HTML 进行完整的比较,但是快速浏览后,似乎http://d3js.org/d3.v2.js /script 节点在 https 访问的情况下不存在,因为它在http 案例。

    希望这会有所帮助。

    皮特

    4/25/13 更新:查看 Chrome 上的控制台输出,我看到以下错误:

    [阻止]https://young-eyrie-4632.herokuapp.com/loops/nodes 的页面运行来自http://mbostock.github.com/d3/d3.js 的不安全内容。

    我确认这个脚本没有出现在 Chrome 的“源”选项卡下,所以我认为它没有在 https 案例中加载。我不知道您是否可以将其更改为 https 引用,或者您是否必须将其添加到您的存储库中,以便 Rails 在启动时加载它。这仍然留下对http://d3js.org/d3.v2.js 的引用。我不知道那是从哪里来的。

    【讨论】:

    • 我能够使用 d3_rails gem 删除对 d3 的 http 引用。这在我的本地主机中有效,这令人鼓舞。不幸的是,当我推送到 Heroku 时,页面中断(甚至是 http),无法找到 d3。我现在正在看 - 如果您有任何想法,请发布。谢谢!
    • 我最终只是(哈!)将 d3.js 代码放入我的 rails vendor/assets/javascripts 文件夹,按照 Heroku 部署说明进行预编译,并从 html 中删除脚本标记。对于任何感兴趣的人,所有内容都在 github 中更新。既然这个答案让我再次出发,全赏金!非常感谢。
    • 很高兴你成功了,Damien,感谢您的全部赏金。这是慷慨的,非常感谢。但是,我很好奇是什么导致您进行预编译。您是否在 heroku push 的输出中看到了问题,如果我理解的话,资产被编译为 slug 编译的一部分?
    • 我可能不需要预编译,真正的变化是将 vendor/assets/javascripts/*.js 包含到我的资产构建中。我进行了预编译,因为我认为它会带来更快的性能,但也许这是错误的——我对 Rails 还是很陌生。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2013-05-25
    相关资源
    最近更新 更多