3

我有一个在 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 访问。

谢谢,

达米安

4

1 回答 1

2

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

两种情况下生成的 HTML 我没有做完整的对比,但是快速浏览了一下,似乎http://d3js.org/d3.v2.js /script 节点在的情况下是不存在的https 访问,就像在 http 的情况下一样。

希望这可以帮助。

皮特

2013 年 4 月 25 日更新:查看 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的引用。我不知道那是从哪里来的。

于 2013-04-24T23:08:01.820 回答