Rails 3.1では、認証時にforce_sslを使用しています。これは、リダイレクトURIがクエリ文字列として追加されている場合に問題を引き起こすようです。これはhttp->httpsプロトコルスイッチで削除されるためです。httpsプロトコルで開始した場合、クエリ文字列はそのまま残り、リダイレクトは問題なく行われます。
force_sslプロトコルスイッチを介してクエリ文字列を保持する方法に関するアイデアはありますか?
Rails 3.1では、認証時にforce_sslを使用しています。これは、リダイレクトURIがクエリ文字列として追加されている場合に問題を引き起こすようです。これはhttp->httpsプロトコルスイッチで削除されるためです。httpsプロトコルで開始した場合、クエリ文字列はそのまま残り、リダイレクトは問題なく行われます。
force_sslプロトコルスイッチを介してクエリ文字列を保持する方法に関するアイデアはありますか?
Railsの最新バージョンでは、https://github.com/rmm5t/rails/commit/391e6a47dbd46fdce0a472819e8d27792cc91984が修正されています。
Rails 3.1を使用する必要がある場合は、フィルターの前に独自のforcesslを作成する必要があります
before_filter :check_ssl
def check_ssl
redirect_to({:protocol => 'https'}.merge(params), :flash => flash) unless request.ssl?
end