2013-04-21 2 views
3

У меня есть приложение Rails (https://github.com/ddelruss/loops), которое я разместил на Heroku. Он использует форму Rails для сбора идентификатора пользователя, пароля и документа пользователя, который он использует для входа в Google диск, загрузки содержимого документа и визуализации в виде визуализации D3. Все, что работает отлично - тест, если вам нравится (и доверять текущей безопасности):Как получить доступ к содержимому документа Google Диска через https из приложения Rails, размещенного на Heroku?

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

Вы можете использовать общедоступный ключ демо документа: 0AtOGnLq8Mf_ydGtmMmI5UjhEUmlqQ0d6UHFVaWN2TWc

Ни информации пользователя не хранится, поскольку я хочу, чтобы сайт был как можно более безопасным. Недостаток заключается в том, что на данный момент сайт доступен по адресу http, который, как я понимаю, означает, что учетные данные пользователя отправляются из веб-формы в незашифрованные файлы Heroku/Rails.

Итак, я хочу получить доступ к приложению через https, который Heroku поддерживает через ssl. И действительно, сайт загружается с помощью https: // и будет отображать страницу визуализации. Проблема в том, что документ Google не возвращает никаких результатов. Вход успешно завершен, нет ошибки приложения (в соответствии с журналами heroku) ... только с пустым результатом.

Что можно сделать, чтобы мое приложение работало через https, включая получение результатов из документа диска Google? Обратите внимание, что мне не нужны оба - если https работает, я отлично отключу доступ к http.

Спасибо,

Дэмиен

ответ

2

Я побежал приложение с демо-документа и вариант иерархии как с HTTP и HTTPS и от глядя на HTML, представляется, что содержание присутствует в обоих случаях , но не отображается в случае https. То есть, я считаю, Google правильно возвращает документ.

Я не сделал полного сравнения HTML, сгенерированного в двух случаях, но после быстрого взгляда кажется, что узел http://d3js.org/d3.v2.js/script отсутствует в случае доступа https, поскольку он находится в http дело.

Надеюсь, это поможет.

Пит

4/25/13 Обновление: Глядя на мой вывод консоли на Chrome, я вижу следующее сообщение об ошибке:

[blocked] The page at https://young-eyrie-4632.herokuapp.com/loops/nodes ran insecure content from http://mbostock.github.com/d3/d3.js .

и я подтвердил, что этот сценарий не появляется в разделе «Источники в Chrome ", поэтому я понимаю, что он не загружается в случай https. Я не знаю, можете ли вы изменить это на ссылку https или вам нужно будет добавить его в свой репозиторий, чтобы Rails загрузил его при запуске. Это все еще оставляет ссылку на http://d3js.org/d3.v2.js. Я не могу понять, откуда это происходит.

+0

Я попробую это скоро - спасибо за продвижение темы! –

+0

Мне удалось удалить ссылку http на d3, используя драгоценный камень d3_rails. Это работает в моем локальном хосте, который поощряет. К сожалению, когда я нажимаю на Heroku, страницы ломаются (даже http), не могут найти d3. Я смотрю на это сейчас - напишите, если у вас есть идеи. Благодаря! –

+0

Я закончил просто (ha!), Поместив код d3.js в папку rails vendor/assets/javascripts, предварительно скомпилировав согласно инструкциям по развертыванию Heroku и удалив тег скрипта из html. Все обновляется в github для всех, кого это интересует. Поскольку этот ответ заставил меня идти снова, полная щедрость! Спасибо. –

Смежные вопросы