2010-09-28 108 views
0

我試圖在我的控制器驗證用戶是否有足夠的權限來上傳文件。 swfupload會根據文檔中的cookie值直接在POST請求中傳遞POST請求。這使得before_filter :authenticate_user!不可用,用戶未被正確授權。設計和swfupload授權

據我所知,從設計文檔,有創建自定義會話控制器的可能性。這是解決這個問題的一個很好的起點嗎?任何想法如何從POST提取會話ID並繼續授權?

回答

0

我有一個與swfupload類似的問題。我使用midleware和一些自定義的助手鍊接來使它工作。更多的信息在這裏:http://thewebfellas.com/blog/2008/12/22/flash-uploaders-rails-cookie-based-sessions-and-csrf-rack-middleware-to-the-rescue

+0

是的,謝謝。這正是我所需要的。只是給別人一個小費。瞭解中間件在堆棧中的位置。在上面鏈接中呈現的中間件應該儘早調用(在Warden之前)。所以而不是'config.middleware.use'使用更好的'config.middleware.insert_before' – Michal 2010-10-03 20:57:33

+0

多一點評論。使用POST參數而不是自定義鏈接更簡單。如果使用swfupload,請在'post_params'參數中傳遞會話標識(請參閱swfupload docs),並使用'params = :: Rack :: Request.new(env).params'在中間件中提取它 – Michal 2010-10-03 21:00:26