SSL на Devise не работает должным образом Rails 3 - PullRequest
1 голос
/ 16 ноября 2011

У меня есть два метода в application_controller.rb

def force_ssl
      if !request.ssl?
        redirect_to :protocol => 'https'
      end
    end

    def no_ssl
      if request.ssl?
        redirect_to :protocol => "http"
      end
    end

также я сделал before_filter :no_ssl в application.rb

Теперь я пытаюсь вызвать метод force_ssl в контроллере сессий устройства для безопасного входа в систему через SSL

В файле session_controller.rb я сделал skip_before_filter :no_ssl and before_filter :force_ssl

Я не могу войти в систему, когда использую это, однако, если я не делаю before_filter :no_ssl в application_controller.rb, он работает нормально.

Поскольку у меня много контроллеров, я пытался поместить before_filter :no_ssl в application.rb, чтобы мне не нужно было вызывать before_filter :no_ssl во всех контроллерах, поскольку он не будет СУХИМЫМ.

Я перепробовал почти все доступные ресурсы и не знаю, почему это не работает.

P.S .: - Это работает для других моих контроллеров, кроме устройства devise Есть предложения ??

Спасибо

1 Ответ

1 голос
/ 29 декабря 2011
  1. Вы можете использовать Bartt-SSL_Requirement, он хорошо работает в Rails 3.1, поэтому вам не нужны before_filter и skip_before_filter.В BarttSSLRequirement вы можете использовать «ssl_exceptions» для ваших потребностей before_filter.

  2. Иногда SSL вызывает проблемы в разработке, подталкивает его к подготовке и он должен работать.

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