2011-12-02 78 views
4

我試圖打開關閉的HttpOnly在PhoneGap的應用。我期運用鋼軌3.1和設計,每個報告(但沒有記錄)這樣做,沒有一個工作方式:會話cookie僅Http假軌3.1

# application.rb 
config.session_options = { :httponly => false } # no effect 
config.session = { :httponly => false } # undefined method `session=' 


# devise.rb 
config.cookie_options = { :httponly => false } # also no effect 

測試我重新啓動服務器,刪除現有的Cookie,並重新加載這一頁。 「HTTP」柱在鍍鉻調試器仍然檢查。

幫助!

回答

7

這個小片段似乎工作:

Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all, :httponly => false 
0

據我所知,這是在軌道中的錯誤。或許選項得到了刪除,但文檔留了下來。任何想法都會受到歡迎!

我花了幾個小時,徹底與ActionPack的,並couln't找到這樣option--,但我還沒有完整的圖片,以它是如何工作的配置任何引用。具體來說,有一個cookiestore存放cookie並將它們寫入到頭文件中(並通過:httponly => true),但是我找不到會話如何使用存儲庫 - 含糊不清的東西,比如Rails SessionManage模塊是一個諺語的鬼城。

我砍死了一箇中間件其做工作:

# application.rb: 
    config.middleware.insert_before ActionDispatch::Cookies, "UnshieldCookie" # remove httponly. 

# unshielded_cookie.rb 
class UnshieldCookie 
    def initialize(app) 
    @app = app 
    end 

    def call(env) 
    status, headers, body = @app.call(env) 

    headers['Set-Cookie'].gsub!('HttpOnly', '') if headers['Set-Cookie'].present? 

    [status, headers, body] 
    end 
end