Rails 3: убедитесь, что пользователь использует https - PullRequest
7 голосов
/ 21 февраля 2011

У меня есть приложение Rails 3, работающее на Heroku, а также у меня установлен и работает SSL.Тем не менее, мои пользователи могут получить доступ к сайту без https.Как мне убедиться, что все URL обращаются с помощью https?

Спасибо

Редактировать:

Я пытался добавить это в application_controller.rb

 before_filter :redirect_to_ssl

  def redirect_to_ssl
      redirect_to url_for params.merge({:protocol => 'https://'})
  end

Но я получаю Error 310 (net::ERR_TOO_MANY_REDIRECTS) ошибку.

Ответы [ 3 ]

7 голосов
/ 06 апреля 2011

вам может понадобиться проверить, используете ли вы уже ssl ... это работает для нас.

before_filter :redirect_to_ssl
def redirect_to_ssl
    redirect_to :protocol => "https://" unless (request.ssl?)
end
6 голосов
/ 22 марта 2014

Существует параметр конфигурации, который вы можете использовать в config / production.rb или application.rb для вашей производственной среды.

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true

Это хорошо послужило мне в моем приложении на Rails без написания дополнительного кода.

5 голосов
/ 21 февраля 2011

Вот ответ, который я отправил на аналогичный вопрос .

В противном случае вы можете использовать Rack :: SSL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...