2016-03-23 8 views
0

私は、POSTリクエストを行い、このページを持っている:なぜrequest.protocolは常にhttpsではなくhttpであるのですか?

<form method="POST" action="https://staging.cathytest.com/user/signup"> 
    <input name="data" value="tsd213guHUUDUhyusgd4314yDTSgts435dfsg" /> 
    <input type="submit" value="Submit" /> 
</form> 

要求プロトコルがhttpsであれば、コントローラのアクションsignupをチェックします。私はrequest.protocolを使用してプロトコルを取得しますが、それは常に私にhttpを与えます。問題が何であるか教えていただけますか?

+0

あなたのリバースプロキシがhttpsをオフロードしていると思いますが、リバースプロキシの設定がないとわかりません。 – Aetherus

答えて

1
# config/application.rb 
module MyApp 
    class Application < Rails::Application 
    config.force_ssl = true 
    end 
end 

これは、すべての要求に対して、レールがhttpsを使用するよう強制します。

+0

別の方法がありますか?リクエストは別のAPIからのものです。私は、彼らが私にhttpsまたはhttpリクエストプロトコルを送ったかどうかをコントローラーで判断する必要があります。 – Catherine

+0

これは、rack-ssl-enforcer gemを使用してRackレベルで行うことができます。特定のパス、ホスト、およびメソッドを除外できるように設定できます。それがあなたのニーズを満たしていれば、私は自分のソリューションをロールオーバーする以上のことをお勧めします。 – meshpi

関連する問題