我已成功地排除了会议成员无法使用的问题,即使他们已设置并且想知道为什么会发生这种情况。我的情况可以描述为: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