我已成功地排除了會議成員無法使用的問題,即使他們已設置並且想知道爲什麼會發生這種情況。我的情況可以描述爲:Sinatra會員「消失」
- Sinatra應用程序使用
:session
。 - 使用oAuth授權用戶,並在此過程中設置
:ret_url
會話成員,以便應用程序知道授權後要回到哪裏。 - 服務器上雪松堆棧(Heroku的)
這完美的作品,而在本地運行,但:ret_url
會議成員完全來自在Heroku會話消失麒麟。我發現,如果我刪除這段代碼就解決了這一問題:
before do
cache_control :public, :must_revalidate, :max_age => 60
end
問題1:我猜,我的cookie被被緩存而不:ret_url
價值,這就是爲什麼它被打破?
問題2:我正在設置會話成員,如下面的路由條件代碼所示,這是做錯了嗎?
# redirect users to login if necessary
set(:auth) do |access_token|
condition do
if request.request_method == 'GET'
session[:ret_url] = request.path_info
end
redirect '/' unless user_logged_in?
end
end
我想使用緩存,並仍然有我的cookie有效。
您是否設置了會話密鑰?設置:session_secret,「超級祕密」 – mscccc 2012-06-27 16:17:46
我有,當我在本地運行我的末日應用,在那裏存在的會話的成員,但在Heroku上運行時消失的問題。我已經使用OAuth,現在考拉與Facebook互動嘗試,並最終都表現出了同樣的問題。 – 2012-08-23 01:29:15