2011-10-20 29 views
0

Deviseアクションの後にリクエストをHTTPにリダイレクトしようとしています。私がしようとしていることが正しい/最善の方法であるかどうかは分かりませんので、私は提案をすることができます。ここに私が持っているものがあり、それは理解できない "リダイレクトループ"で失敗しています。これで、リダイレクト後にリクエストを終了する方法を理解する必要があります。Devise SSLコントローラの後でHTTPに戻る

これは追求する価値があるのですか、それとも良い方法がありますか?

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    before_filter :https_only_for_devise 

    @@ssl_controllers = ['devise/registrations', 
         'devise/sessions'] 

    def https_only_for_devise 
    if (@@ssl_controllers.index(params[:controller]) == nil) 
     redirect_to :protocol => 'http://' 
    end 
    end 
end 
+0

私はちょうど今EngineYardでそれをテスト...これを解決したと思います信じられないほど明白

def https_only_for_devise if (@@ssl_controllers.index(params[:controller]) == nil && request.ssl?) redirect_to :protocol => 'http://' end end 

...:にメソッドの内容を変更しました結果を投稿します。 – codedog

+0

httpsをdeviseのためだけに使用し、サイト全体ではなく、あなたはユーザーを[firesheeped](http://codebutler.com/firesheep)にしておきます。代わりにサイト全体でhttpsを要求する必要があります。 rails-3.1では 'production.rb'に' config.force_ssl = true'を設定することができます。 – yfeldblum

+0

それは面白いです...私はそれを考えなかった。パフォーマンス上のヒットはセキュリティリスクと比較して小さいと思いますか? – codedog

答えて

1

これは機能しました。今、私はそれについて考えたこと...

関連する問題